C# ラムダ式の基本構文
ラムダ式は、匿名関数を簡潔に記述するための構文です。C# 3.0 で導入され、LINQ やイベント処理など様々な場面で活用されています。
基本的な書き方
ラムダ式は => 演算子(ラムダ演算子)を使って記述します。左側にパラメータ、右側に処理内容を書きます。
// 引数1つ、処理1つの最もシンプルな形
Func<int, int> square = x => x * x;
Console.WriteLine(square(5)); // 25パラメータが1つの場合は括弧を省略できます。複数のパラメータがある場合は括弧が必要になります。
// 引数が2つの場合
Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(3, 4)); // 7引数がない場合
引数がない場合は空の括弧 () を記述します。
Action greet = () => Console.WriteLine("Hello!");
greet(); // Hello!従来の匿名メソッドとの比較
ラムダ式が登場する以前は、匿名メソッドを使って同様の処理を記述していました。ラムダ式によってコードが大幅に簡潔になります。
匿名メソッド(C# 2.0)
delegate キーワードを使い、引数の型を明示的に書く必要があった
ラムダ式(C# 3.0 以降)
=> 演算子で簡潔に記述でき、型推論により引数の型も省略可能
// 匿名メソッド(旧来の書き方)
Func<int, int> doubleOld = delegate(int x) { return x * 2; };
// ラムダ式(現在の書き方)
Func<int, int> doubleNew = x => x * 2;ラムダ式は単なる省略記法ではなく、式ツリーへの変換など高度な機能の基盤にもなっています。まずはこの基本構文をしっかり押さえておきましょう。