如果我有以下代码:私人-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