【C#】読み取り専用インデクサとプロパティをラムダ式で書くと、可読性が上がる

読み取り専用のコードを定義したいということは多々あるかと思います。C#6.0以前は二重括弧のgetterを書かなければ行けなかったのですが、C#6.0以降はラムダ式で定義できるようになり、面倒くささが減っただけでなく可読性が向上しています。

環境

  • C#6.0以降

インデクサの書き換え

private T[] arr = new T[100];

// インデクサ
public T this[int i]
{
    get { return arr[i]; }
    set { arr[i] = value; }
}

// 読み取り専用インデクサにラムダ式で書き直す(C#6.0以降)
public T this[int i]  => arr[i];

// インデクサをラムダ式で書き直す(C#7.0以降)
public T this[int i]
{
    get => arr[i]; 
    set => arr[i] = value; 
}

プロパティの書き換え

// プロパティ
public T X { get; set; }

// ラムダ式で書き直す(C#6.0以降)
public T X => this.x;
private T x;
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、秋月なるです。
アラフォー会社員で、スマホアプリ/ゲーム/AIが好き。新しいものを見ると触りたくなるタイプで、スマホやウェアラブル等ガジェットが好きですが、よく買ったあとに「思ってたのと違う…」をやりがち。
ブログ投稿は趣味の1つなので、ゆるく続けていこうと思います。

目次