1. ホーム
  2. c#

[解決済み] C#の'=>'構文は何を意味するのですか?

2023-02-23 12:21:24

質問

このフォーラムの質問でこの構文に出会ったのですが、Googleや他の検索エンジンは文字と数字以外を検索から除外する傾向があり、"=>"を検索することは不可能なのです。

ということで、どなたか、それが何なのか、どのように使われるのか、教えていただけませんか?

どのように解決するのですか?

ラムダ演算子です。

C# 3からC# 5までは、これはただ単に ラムダ式 . これらは基本的に、より短い形式の 匿名メソッド の短縮形ですが、C# 2 で導入された 式木 .

例として

Func<Person, string> nameProjection = p => p.Name;

とは等価である。

Func<Person, string> nameProjection = delegate (Person p) { return p.Name; };

どちらの場合も、デリゲートを作成する際に Person パラメータを持つデリゲートを作成し、その人の名前を(文字列として)返しています。

C# 6では、同じ構文で 式ボディーのメンバー のように、例えば

// Expression-bodied property
public int IsValid => name != null && id != -1;

// Expression-bodied method
public int GetHashCode() => id.GetHashCode();

も参照してください。

(そして実際に多くの似たような質問 - 試してみてください。 ラムダ ラムダ式 タグを含む)