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;

ラムダ式は単なる省略記法ではなく、式ツリーへの変換など高度な機能の基盤にもなっています。まずはこの基本構文をしっかり押さえておきましょう。