ラムダ式とは?

ラムダ式とは、メソッドの簡略記法のことです。特に匿名メソッドを作成する際に使用します。

C#3.0(Visual Studio 2008、DotnetFramework3.5)で導入されました。

LINQの拡張メソッドの多くは引数としてラムダ式を受け取ります。

 

ラムダ式の基本構文

ラムダ式の基本構文は以下のようになります。

左辺 => 右辺

C#のラムダ式で使われる「=>」はラムダ演算子と呼ばれ、「goes to」(ゴーズ・トゥ)と読みます。

左辺

左辺はメソッドのパラメータを次のようなルールに従い記述します。

  • パラメータリストを丸括弧で囲む
  • 複数のパラメータがある場合はカンマで区切る
  • 引数がない場合には丸括弧だけを書く
  • 引数が1つだけの場合には丸括弧を省略できる
  • 型を推測できる場合は省略できる
(int x) => 右辺
(x) => 右辺
x => 右辺
() => 右辺
(x, y) = 右辺

右辺

文形式(ステートメント形式)と式形式の2つの記法があります。

左辺 => 式; // 式形式
左辺 => return 式; // 式形式
左辺 => {文1; 文2; 文3;}; // 文形式
左辺 => {文1; 文2; return 式;}; // 文形式

式ツリーを記述するときには式形式でしか書けませんが、通常はどちらでも可能です。

 

 

その他

  • ラムダ式より前で定義された変数を、ラムダ式の右辺の中で参照できます。
  • 式形式の場合はreturnを省略できます。
  • 文形式の場合で戻り値が必要な場合は必ずreturnが必要です。

 

参考