如何定义一个结构,其成员可以被任何内部类通过属性访问,但只能由特定的内部类设置?(如果有可能。)
如果不可能,是否有实现类似要求的工作?
编辑1:下面
原因:
我有一个有两个成员 _x 和 _arrB 的 A 类。_x 可以通过 x 被内部类(A 类除外)读取但不能修改。
我还希望允许内部类读取 _arrB 中的 structB 元素并读取这些 structB 的成员。但我只希望 A 类能够修改 _arrB 中的 structB 元素或那些 structB 的成员。因此,我认为我需要一个可以指定哪些内部类可以修改其成员的结构。 [1]
class A
{
private int _x;
internal int x
{
private set
{
_x = value / 2;
}
internal get
{
return _x * 2;
}
}
private B[] _arrB;
internal B[] arrB
{
private set
{
_arrB = value;
}
internal get
{
return _arrB;
}
}
public A()
{
_x = //value read from somewhere;
//do something to determine size
_arrB = new B[size];
//populate _arrB
...
}
}
注意:内部类是指同一程序集中的类,而不是嵌套类。
[1] 但是,_arrB 是一个数组,它是一个对象,它是一个引用类型。当内部类获得 _arrB 的引用时,structB 的元素可能会在不受控制的情况下被修改。我意识到我不希望内部类将 _arr[0] 设置为空。所以任何解决方案都必须考虑到这一点。
我会在剩下的时间里考虑它,并在我想到一个解决方案时发布一个解决方案。