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

Статическая лямбда

Перед списком параметров лямбды можно написать static. Такая лямбда использует только свои аргументы и статический контекст; локальные переменные метода она не захватывает. Это уменьшает скрытые зависимости и нагрузку на замыкание. Тип по-прежнему задаётся делегатом, например Func из System.

Синтаксис

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

Пример

Давайте объявим статическую лямбду с одним параметром:

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

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

10

Пример

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

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

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

13

Пример

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

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

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

"ABCDE"

Пример

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

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

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

9 16

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

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