Назад Вперед Содержание

Лямбды

Лямбда выражения.

Лямбда выражения, это более лучшая замена анонимным методам, которая основываются на новом синтаксисе. Во всех лямбда выражениях должен быть лямбда оператор “=>”. Этот оператор разделяет выражение на две части.

В левой части – параметры (может быть несколько).В правой части – тело метода;

Есть еще такие понятия, как одиночные и блочные лямбда выражения. Все просто, если у нас после цикла for или оператора if включается одна строчка кода, то незачем включать эту строку в фигурные скобки. Это относится к одиночным лямбда выражениям, но если в выражение несколько строчек, нужно захватить этот блок в фигурные скобки.

Необходимо определить делегат, совместимого с лямбда-выражением, затем создать экземпляр делегата, которому присваивается лямбда-выражение.

Одиночные лямбда-выражения:

delegate int Pow(int change);  
Pow pow = change => change * change; Console.WriteLine(pow(10)); // ризультат будет 100

Теперь перепишем пример про велосипедиста с использованием лямбда-выражения.

Результат будет тот же, что при использование анонимных методов. Типы параметров не указываются. Компилятор сам определяет, какие типы имеют параметры, исходя из делегата и его типа, который возвращается. Хотя, можно и явно указать тип, к примеру так:

LambdaDelegate lambdaDel = (int a) => ++a;  
  

Обратите внимание на выражение “++a”.Если переписать, например, вот так: “a++” – будет бесконечный цикл!

Блочные лямбда-выражения:

Чтоб создать блочное лямбда-выражение, нужно просто его взять в фигурные скобки. Преимущества в использование блочных выражений проявляется в том, что есть возможность управлять такими операторами как if, for и т.д. Все также как при написание простых методов.

Назад Вперед Содержание