воскресенье, 13 марта 2011 г.

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

Лябда-выражения являются реализацией замыканий. Это своего рода контейнер с функцией, который можно передавать в любую часть программы и вызвать с нужными аргументами. Кроме того лямбда-выражение связывает функцыю внутри себя с лексическим окружением. То есть лямбда-выражение видит все переменные и методы объекта в котором оно формируется.
Синтаксис лямбда-выражений очень простой состоит из дувух частей
 ([аргументы]) => {[тело функции]}
аргументы можно указывать с типами, но в большинстве случаев это не требуется. Следующая запись будет означать, что создаем лямбда-выражение с двумя аргументами num типа int и name типа string.
 (int num, string name) => {[тело функции]}
Если аргументов нет, тогда запись будет выглядеть так
 () => {[тело функции]}
Если аргумент один и не требуется указывать его тип, то можно опустить круглые скобки сократив запи
 arg => {[тело функции]}
Внутри блока {[тело функции]} можно вставлять любые операции дозволенные в текущем лексическом окружении. Если [тело функции] состоит из одной операции, то можно опустить фигурные
 ([аргументы]) => SomeFunction(...)
В этом случае лямбда-выражение вернет (если требуется) последнее значение со стека. В предыдущей записи это будет результат работы функции SomeFunction(...). А вот такая запись лямбда-выражения вернет а
 (int num, string name) => num
Ну вот и все, можно пользоваться.

Комментариев нет:

Отправить комментарий