Подтвердить что ты не робот

Лямбда-выражение для нескольких параметров

Я понимаю, что выражение лямбда является, по сути, встроенным объявлением делегата, чтобы предотвратить дополнительный шаг

Пример

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
 }

Как можно выразить несколько параметров с помощью выражений лямбда?

4b9b3361

Ответ 1

Вы должны понимать поведение Func, где последним параметром всегда является вывод или результат

Func < 1, 2, outPut >

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;

Ответ 2

Да. Если у вас есть аргументы лямбда, отличные от одного (ноль или > 1), используйте вокруг них круглые скобки.

Примеры

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

int result = add(1, 3);

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

var life = constant();

Ответ 3

delegate int Multiplication(int x, int y)
public class Program
{
   static void Main(String[] args)
   {
      Multiplication s = (o,p)=>o*p;
      int result = s(5,2);
      Console.WriteLine(result); // gives 10
   }
}