rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 2.0 - プロパティの get/set 個別のアクセスレベル

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

プロパティの get/set 個別のアクセスレベル

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility
 プロパティの get アクセサーと set で異なるアクセス レベルを設定できる。

class Program
{
    static void Main(string[] args)
    {
        A a = new A();
        // a.PropertyA = 1; <- set は private なのでこれはできない
        a.SetPropertyA(10);
        Console.WriteLine(a.PropertyA);   // 10
    }
}

class A
{
    public int PropertyA { get; private set; }
    public void SetPropertyA(int value) { PropertyA = value; }
}