今日、初めてこれに似たものを見ました。
private string m => string.Empty;
ラムダを使用して変数を初期化します。なぜこれをこのように行うのですか?利点は何ですか?
これはExpression-Bodied Propertiesと呼ばれ、ゲッターのみのプロパティのショートカットにすぎません。
private string m
{
get { return string.Empty; }
}
このアプローチの利点については、いくつかのキーストロークを節約するだけの構文糖として扱うことができると思います。
参照 Roslyn Wiki
これは変数ではなく、式のボディプロパティです。読み取り専用プロパティ。この場合はstring.Empty
を返します。
それは同じです
private string m { get { return string.Empty; } }
これは、C#6.0で導入された新機能の1つです。利点は、より短く、より簡潔なコードです。特に、単純な読み取り専用プロパティが多数あるクラスがある場合は、.
この構文の実際の例を見たい場合は、 Eric Lippertのブログのこの投稿 を確認してください。ご覧のとおり、1行のメソッドとプロパティが多数あります。式本体のプロパティとメンバーがなければ、コードははるかに長くなります。そして、そのかなりの部分は中括弧になります。
これは実際には変数の初期化ではなく、ラムダ式「string.Empty」を「m」にバインドするため、「m」を逆参照すると必ずラムダ式が実際に評価されます。
詳細については、チェックアウト このgithubページ (「式本体関数メンバー」セクション)