rksoftware

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

C# 2.0 以降の新機能の確認 - C# 6.0 - 自動実装プロパティ get アクセサーのみの宣言

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

自動実装プロパティ get アクセサーのみの宣言

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties
  get アクセサーのみを宣言し、変更できないプロパティの作成できる。

class Program
{
    static void Main(string[] args)
    {
        MyClass c = new MyClass();
        int i = c.MyProperty;   // <- これはできる (get は宣言している)
        // c.MyProperty = 20; <- これはできない (set は宣言していない)
    }
}

class MyClass
{
    internal int MyProperty { get; }
    public MyClass()
    {
        MyProperty = 10;    // コンストラクター内では初期化できる
    }
}