Лямбда вираження, це більш краща заміна анонімним методам, яка ґрунтуються на новому синтаксисі. У всіх лямбда виразах повинен бути лямбда оператор "=>". Цей оператор розділяє вираз на дві частини.
У лівій частині - параметри (може бути кілька) .В правій частині - тіло методу;
Є ще такі поняття, як поодинокі і блокові лямбда виразу. Все просто, якщо у нас після циклу 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 і т.д. Все так само як при написання простих методів.