gpt4 book ai didi

c# - 如何确定允许调用特定方法的对象类型?

转载 作者:行者123 更新时间:2023-12-03 20:10:55 25 4
gpt4 key购买 nike

我有一个 Node 类:

public class Node
{
private string name;
private Point3D location;
private int id;
.
.
}

和一个 Graph 类:

public class Graph
{
....
}

Node 中的 id 是只读的,但我只需要从 Graph 对象而不是从 Graph 类之外设置它的值。我怎样才能做到这一点?

最佳答案

可能帮助(但不是完全修复)的一个选项是使用修饰符 internal在属性(property)上。这将属性的可访问范围限制在它所属的程序集内,以及声明为友元的任何程序集中。

话虽如此,您要求使 Id 公开但只能从 Graph 对象进行更改违反了 OO 概念。解决这个问题的一种方法是将 Node 对象的创建限制在 Graph 类中,或者从仅对 Graph 类可用的工厂方法。如果您执行此操作并将 Id 属性公开为仅具有 getter 的公共(public)属性,并在构造函数中为其分配一个值,那么您将实现 90% 的目标。

关于c# - 如何确定允许调用特定方法的对象类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com