Таким образом, когда требуется указать два параметра или более, их следует заключить в скобки. Если же
Ниже приведен простой пример одиночного лямбда-выражения.
count- => count + 2
В этом выражении count служит параметром, на который воздействует выражение count + 2. В итоге значение параметра count увеличивается на 2. А вот еще один пример одиночного лямбда-выражения.
n => п % 2 == О
В данн“ом случае выражение возвращает логическое значение true, если числовое значение параметра п оказывается четным, а иначе — логическое значение false.
Лямбда-выражение применяется в два этапа. Сначала объявляется тип делегата, совместимый с лямбда-выражением, а затем экземпляр делегата, которому присваивается лямбда-выражение. После этого лямбда-выражение вычисляется при обращении к экземпляру делегата. Результатом его вычисления становится возвращаемое значение.
В приведенном ниже примере программы демонстрируется применение двух одиночных лямбда-выражений. Сначала в этой программе объявляются два типа делегатов. Первый из них, Inc г, принимает аргумент типа int и возвращает результат того же типа. Второй делегат, IsEven, также принимает аргумент типа int, но возвращает результат типа bool. Затем экземплярам этих делегатов присваиваются одиночные лямбда-выражения. И наконец, лямбда-выражения вычисляются с помощью соответствующих экземпляров делегатов.
// Применить два одиночных лямбда-выражения.
delegate int Incr(int v);
// Объявить делегат, принимающий аргумент типа int и // возвращающий результат типа bool, delegate bool IsEven(int v);
class SimpleLambdaDemo {
static void Main() {
// Создать делегат Incr, ссылающийся на лямбда-выражение,
// увеличивающее свой параметр на 2.
Incr incr = count => count + 2;
// А теперь использовать лямбда-выражение incr.
Console.WriteLine("Использование лямбда-выражения incr: "); int x = -10; while(x <= 0) {
Console.Write(x + " ");
x = incr(x); // увеличить значение x на 2
}
Console.WriteLine ("\n");
// Создать экземпляр делегата IsEven, ссылающийся на лямбда-выражение,
// возвращающее логическое значение true, если его параметр имеет четное // значение, а иначе — логическое значение false.
IsEven isEven = n => n % 2 == 0;
// А теперь использовать лямбда-выражение isEven.
Console.WriteLine("Использование лямбда-выражения isEven: "); for (int i=l; i <= 10; i++)