我知道這聽起來有點奇怪,但我會嘗試解釋它:假設我有一個有很多屬性的類,並且它們都是隻讀的,所以這個類是唯一可以修改其屬性的類(它正在監聽一個事件,並用該事件中包含的信息填充屬性)。我可以在一個只能由一個具體類訪問的「set」結構中創建一個屬性嗎?
但是,我想封裝一些結構的一些屬性,以創建一個組織良好的層次結構,所以這些結構的屬性也應該是隻讀的,除了所有者類。例如:
public class A
{
private int a1;
public int A1
{
get{ return a1; }
}
private B structB;
public B StructB
{
get{ return structB; }
}
private method eventListenerMethod(...)
{
a1 = someValue;
structB.B1 = otherValue; //I want that only this class can modify this property!
}
}
public struct B
{
private int b1;
public int B1
{
get{ return b1; } // This property should be modifiable for Class A!!
}
}
我想我不能那樣做,但有人知道我該如何實現它嗎? 非常感謝您提前。
讓你的結構的副本,改變問題的性質。不要變異。可變的結構是邪惡的。 http://stackoverflow.com/questions/441309/why-are-mutable-structs-evil – spender