为什么在拥有auto属性的类中调用初始化程序时,使用对象初始值设定项来设置私有集自动属性成为可能?我列举了两个班。使用对象初始化器设置私有setter
public class MyClass
{
public string myName { get; private set; }
public string myId { get; set; }
public static MyClass GetSampleObject()
{
MyClass mc = new MyClass
{
myName = "Whatever", // <- works
myId = "1234"
};
return mc;
}
}
public class MyOtherClass
{
public static MyClass GetSampleObject()
{
MyClass mc = new MyClass
{
myName = "Whatever", // <- fails
myId = "1234"
};
return mc;
}
}
,因为它在同一类范围内 – Reniuz
为什么*不可能? –
@JonSkeet - OP可能会认为'private'意味着在属性范围内? – Oded