6

auto プロパティを所有するクラス内からイニシャライザが呼び出されたときに、オブジェクト イニシャライザを使用してプライベート セット auto プロパティを設定できるのはなぜですか? 例として2つのクラスを含めました。

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

2 に答える 2

4

セッターのprivate修飾子とは、囲んでいる型に対してプライベートであることを意味します。

つまり、プロパティは包含型によってのみ設定できます。

そうでない場合、プロパティを設定することはできず、実質的に読み取り専用になります。

MSDN から -プライベート (C# リファレンス) :

プライベート メンバーは、宣言されているクラスまたは構造体の本体内でのみアクセスできます。

于 2012-05-18T10:52:51.470 に答える
0

プライベートとは、プロパティを所有するクラス内でアクセスできることを意味します。

于 2012-05-18T10:53:44.887 に答える