ラムダ式による匿名関数

C#.net

ラムダ式による匿名関数 Func/Action

Windows 10 / Visual Stadio Community 2019 / .NET Framework 4.7.2 / C# 7.3
C#の匿名関数およびデリゲートは、Swiftのクロージャ、JavaScriptの無名関数と似たようなものである。delegateキーワードを使ったデリゲート型の宣言より、Funcまたは Actionキーワードを使った宣言方がわかりやすいと思うので、そちらについてのみ記述した。

Funcデリゲートを利用した匿名関数

ラムダ式による匿名関数を定義し、Funcデリゲート型の変数に代入する Funcデリゲートは、関数に戻り値がある場合に利用する。デリゲートの仮引数 <...> は、匿名関数への引数の型と戻り値の型という並びになる。 例では、最初の intが匿名関数への引数、2番目の intが戻り値に対応する。

Actionデリゲートを利用した匿名関数

Actionデリゲートは、関数に戻り値がない場合に利用する。それ以外は Funcデリゲートと使い方は同じ。

Funcデリゲート変数を関数の引数にする

デリゲート変数を関数の引数とすることで、関数そのものを受け渡すことができる。

変数のキャプチャ

匿名関数は、関数の中から、関数の外側の変数をキャプチャすることができる。