Start Debugging
2023-05-09 Обновлено 2023-11-05 csharp Edit on GitHub

C# 12 - Значения по умолчанию для параметров в лямбда-выражениях

C# 12 позволяет задавать значения по умолчанию для параметров и массивы params в лямбда-выражениях так же, как в методах и локальных функциях.

Начиная с C# 12, вы можете задавать значения по умолчанию для параметров в лямбда-выражениях. Синтаксис и ограничения на значения по умолчанию такие же, как для методов и локальных функций.

Рассмотрим пример:

var incrementBy = (int source, int increment = 1) => source + increment;

Теперь эту лямбду можно вызывать так:

Console.WriteLine(incrementBy(3)); 
Console.WriteLine(incrementBy(3, 2));

Массив params в лямбда-выражениях

Лямбда-выражения также можно объявлять с массивом params в качестве параметра:

var sum = (params int[] values) =>
{
    int sum = 0;
    foreach (var value in values) 
    {
        sum += value;
    }

    return sum;
};

И использовать их так же, как любую другую функцию:

var empty = sum();
Console.WriteLine(empty); // 0

var sequence = new[] { 1, 2, 3, 4, 5 };
var total = sum(sequence);

Console.WriteLine(total); // 15

Ошибка CS8652

The feature ‘lambda optional parameters’ is currently in Preview and unsupported. To use Preview features, use the ‘preview’ language version.

Чтобы использовать необязательные параметры лямбд, ваш проект должен быть нацелен на .NET 8 и C# 12 или новее. Если вы не уверены, как перейти на C# 12, ознакомьтесь со статьёй: Как перейти на C# 12.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Назад