C#言語でのラムダ式
C++で便利なLambda式ですが、C#言語にも同じようなラムダ式が使えるようです。C++の場合Functionalをインクルードしますが、C#は宣言するだけです。
public delegate void Proc<in T>(T arg1);
上記はProc
と言う名前のラムダ型を宣言しています。
関数で使う場合
private void Lambda_test(Proc<int> f) { for (int i = 0; i < 100; ++i) { f(i); } }
Lambda_test
という関数を作成してラムダ式を渡せるようにしました。
上記のような感じで引数として登録できます。
実行方法
実際にラムダ式を渡す方法です。
Lambda_test()
のdelegate
から始まる引数が、ラムダ式です。
private async void Button_ClickAsync(object sender, RoutedEventArgs e) { Lambda_test(delegate(int i) { Debug.WriteLine(i); }); }
delegate
を使わなくても=>
これを入れれば使えるようでした。
Lambda_test((int i) =>
{
Debug.WriteLine(i);
});