使用对象初始值设定项设置私有资源库

本文关键字:设置 资源库 对象 | 更新日期: 2023-09-27 18:34:31

当从拥有 auto 属性的类中调用初始值设定项时,为什么可以使用对象初始值设定项来设置私有设置的 auto 属性?我以两个类为例。

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;
    }
}

使用对象初始值设定项设置私有资源库

二传手上的private修饰符表示 - 私有于封闭类型。

也就是说,只能由包含类型设置属性。

如果不是这种情况,您将永远无法设置该属性,并且它实际上是只读的。

从 MSDN - 私有(C# 参考(:

私有成员只能在声明它们的类的主体或结构中访问

因为私有意味着在拥有财产的类中可访问。