C# 12 - Valores por defecto para parámetros en expresiones lambda
C# 12 te permite especificar valores por defecto para los parámetros y arrays params en expresiones lambda, igual que en métodos y funciones locales.
A partir de la versión 12 de C#, puedes especificar valores por defecto para los parámetros en expresiones lambda. La sintaxis y las restricciones sobre los valores por defecto de los parámetros son las mismas que para los métodos y las funciones locales.
Veamos un ejemplo:
var incrementBy = (int source, int increment = 1) => source + increment;
Esta lambda ahora se puede consumir así:
Console.WriteLine(incrementBy(3));
Console.WriteLine(incrementBy(3, 2));
Array params en expresiones lambda
También puedes declarar expresiones lambda con un array params como parámetro:
var sum = (params int[] values) =>
{
int sum = 0;
foreach (var value in values)
{
sum += value;
}
return sum;
};
Y consumirlas como cualquier otra función:
var empty = sum();
Console.WriteLine(empty); // 0
var sequence = new[] { 1, 2, 3, 4, 5 };
var total = sum(sequence);
Console.WriteLine(total); // 15
Error CS8652
The feature ‘lambda optional parameters’ is currently in Preview and unsupported. To use Preview features, use the ‘preview’ language version.
Tu proyecto necesita tener como target .NET 8 y C# 12 o más reciente para usar la característica de parámetros opcionales en lambdas. Si no estás seguro de cómo cambiar a C# 12, consulta este artículo: Cómo cambiar a C# 12.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.