День сто тридцать седьмой. #ЗаметкиНаПолях

Лямбда-выражения. Продолжение

Выражения лямбды

Лямбда-выражение с выражением справа от оператора => называется выражением лямбда. Выражения лямбда широко используются при построении деревьев выражений. Выражение лямбда возвращает результат выражения и имеет следующую базовую форму:

(входные параметры) => выражение



Скобки необязательны, только если лямбда имеет один входной параметр, в противном случае они требуются.

Если входные параметры отсутствуют, используются пустые скобки:

Action line = () => Console.WriteLine();

Два или более входных параметров разделяются запятыми в скобках:

Func<int, int, bool> testForEquality = (x, y) => x == y;



Иногда компилятор не может определить типы входных параметров. Вы можете указать типы явно:

Func<int, string, bool> isTooLong = (int x, string s) => s.Length > x;

Типы входных параметров должны либо все указываться явно, либо не указываться вообще, иначе будет выброшено исключение компилятора CS0748.



Тело лямбда-выражения может состоять из вызова метода. Однако если вы создаете деревья выражений, которые оцениваются вне контекста общеязыковой среды выполнения .NET, например, в SQL Server, вы не должны использовать вызовы методов в лямбда-выражениях. Методы не будут иметь никакого значения вне контекста общеязыковой среды выполнения .NET.



Источник: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions