C# 入門

ホーム > C# の基礎 > ラムダ式

ラムダ式

C# 3.0 ではラムダ式 (Lambda expressions)が導入されました。

それに伴い、ラムダ式を成すために、ラムダ演算子 (lambda operator) => が登場しました。

これまで

「ラムダ式というのは聞いたことはあるけれど、パッと見てなんのことか分かりにくいな」

と感じている人も多いのではないかと思います。

ここではラムダ式の簡単な例をみていくことで、ラムダ式を説明します。

ラムダ式とは

C# 2.0 では匿名メソッドが導入され、インラインコードの記述が簡易化されました。

例えば C# 2.0 で導入された匿名メソッドを用いたデリゲートは次のように記述できます。

delegate(type params) {
  [メソッド本体] return [式];
}

同様の内容をラムダ式を用いて記述すると、次のように書けます。

[params] => [式]

具体的な型名、変数名などをいれると...

delegate(int n) {
  return n + n;
}

のように書いた匿名メソッドと同様の内容をラムダ式を用いて記述すると、次のように書けます。

n => n + n

大変簡便に書けることがわかりますね。(直感的に分かりやすいかどうかは別として・・・)

MSDN ライブラリの記述によれば、ラムダ式 => は「・・・を・・・に入力」と読むとあります。 上の例で言えば、 「 n を n+n に入力」 と読みます。

このように、ラムダ式はインラインコードを簡潔に記述するために使います。

ラムダ式の具体例

ラムダ式は本質的にインラインコードを簡潔に書くため、という目的があります。

C# はバージョンアップをするにつれ、匿名メソッド、ラムダ式と言う風に状況に応じて利用できるオプションが増えています。

次の例では、デリゲートを復習しつつ、デリゲートに普通のメソッド、匿名メソッド、ラムダ式をそれぞれ利用する例をみてみましょう。

デリゲートに普通のメソッド、匿名メソッド、ラムダ式をそれぞれ利用する例

上の例はラムダ式にパラメータが渡らない例でした。パラメータがある場合の例をみてみましょう。

ラムダ式でパラメータがある場合

ホーム > C# の基礎 > ラムダ式