Start Debugging
2023-05-09 Atualizado 2023-11-05 csharp Edit on GitHub

C# 12 - Valores padrão para parâmetros em expressões lambda

O C# 12 permite especificar valores padrão para parâmetros e arrays params em expressões lambda, assim como em métodos e funções locais.

A partir do C# 12, você pode especificar valores padrão para os parâmetros em expressões lambda. A sintaxe e as restrições para os valores padrão dos parâmetros são as mesmas dos métodos e funções locais.

Vamos a um exemplo:

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

Essa lambda agora pode ser consumida assim:

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

Array params em expressões lambda

Também é possível declarar expressões lambda com um array params como parâmetro:

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

    return sum;
};

E consumi-las como qualquer outra função:

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

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

Console.WriteLine(total); // 15

Erro CS8652

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

Seu projeto precisa estar direcionado ao .NET 8 e C# 12 ou mais novo para usar o recurso de parâmetros opcionais em lambdas. Se não tiver certeza de como mudar para C# 12, confira este artigo: Como mudar para o C# 12.

Comments

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

< Voltar