如果我有以下代碼:私人-setter屬性
public class MyClass
{
public string myName { get; private set; }
public string myId { get; set; }
}
私人編譯器生成的變量的設定器創建的。我希望setter不能僅用於對象初始化。但是,我如何才能最初設置myName變量?
閱讀有關對象的初始化我發現:
...它是隻讀的,代表 底層存儲的 私人領域具有我們 不能在使用 編譯器生成的名稱構造函數將它分配給 。該解決方案是使用[...]對象 初始化
的解決辦法是,那麼,使用方法:
MyClass mc = new MyClass {
myName = "What ever",
myId = "1234"
};
但這在說結束了在編譯器錯誤:
屬性或索引 「MyClass.MyClass.myName」 不能在此上下文中,因爲 set訪問是不可訪問
那麼,有沒有一種方法可以實現使用對象初始化設置此值?如果有,那麼做什麼是正確的方法?
謝謝,我想告訴學生,如果使用3.0的新功能可以實現這一點,但看起來答案是否定的。現在我必須爲這本書提交勘誤表:P – jluna 2009-07-13 21:54:12