トルネード

毛利のメモ書き

UWP 入門 - ラムダ式

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);
});

f:id:mojeld:20180723152121p:plain