Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
62 of 1492 menu
◀ ▶

Лямбда

Лямбда записывается через =>: слева - список параметров, справа - тело. Тип лямбды задаёт контекст: часто это Func из пространства System с нужными типами аргументов и результата. Параметры можно указывать с типами или выводить из делегата.

Синтаксис

(параметры) => выражение (параметры) => { тело }

Пример

Давайте удвоим число через Func и лямбду:

using System; class Program { static void Main() { Func<int, int> fn = num => num * 2; Console.WriteLine(fn(5)); } }

Результат выполнения кода:

10

Пример

Давайте укажем тип параметра явно:

using System; class Program { static void Main() { Func<int, int> fn = (int num) => num + 3; Console.WriteLine(fn(5)); } }

Результат выполнения кода:

8

Пример

Давайте напишем лямбду с блоком и return:

using System; class Program { static void Main() { Func<string, int> fn = str => { return str.Length; }; Console.WriteLine(fn("abcde")); } }

Результат выполнения кода:

5

Пример

Давайте вызовем лямбду из списка чисел:

using System; using System.Collections.Generic; class Program { static void Main() { var list = new List<int> {1, 2, 3}; list.ForEach(item => { Console.WriteLine(item); }); } }

Результат выполнения кода:

1 2 3

Смотрите также

  • статическая лямбда,
    которая не захватывает локальные переменные
  • локальная функция,
    которую объявляют внутри метода
  • ключевое слово var,
    которым сокращают объявление делегата
  • цикл foreach,
    в котором часто используют лямбды LINQ
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить