Лямбда-выражение для нескольких параметров
Я понимаю, что выражение лямбда является, по сути, встроенным объявлением делегата, чтобы предотвратить дополнительный шаг
Пример
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
}
Как можно выразить несколько параметров с помощью выражений лямбда?
Ответы
Ответ 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
}
}