33

ラムダ式は本質的に、余分なステップを防ぐためのインラインデリゲート宣言であることを理解しています

delegate int Square(int x)
public class Program
{
   static void Main(String[] args)
   {
      Square s = x=>x*x;
      int result = s(5);
      Console.WriteLine(result); // gives 25
   }
}

ラムダ式をマルチパラメーターに適用するにはどうすればよいですか?

 delegate int Add(int a, int b)
 static void Main(String[] args)
 {
    // Lambda expression goes here
 }

ラムダ式を使用してマルチパラメーターをどのように表現できますか?

4

3 に答える 3

49

最後のパラメーターが常に出力または結果であるFuncの動作を理解する必要があります。

Func<1, 2, 出力>

Func<int, int, int> Add = (x, y) => x + y;

Func<int, int, int> diff = (x, y) => x - y;

Func<int, int, int> multi = (x, y) => x * y;
于 2013-02-23T03:10:12.947 に答える
14

はい。1 以外 (ゼロ、または > 1) のラムダ引数がある場合は、それらを括弧で囲みます。

Func<int, int, int> add = (a,b) => a + b;

int result = add(1, 3);

Func<int> constant = () => 42;

var life = constant();
于 2013-02-23T03:09:18.953 に答える