Lambdas sind in den letzten Jahren an immer mehr Stellen in C# vorgerückt, an denen zuvor Funktionen geschrieben wurden. Allerdings erlaubten Lambdas bisher keine optionale Parameter. Das hat sich in
C# 12.0 geändert. Anstelle dieser Funktion mit optionalem Parameter z
public decimal Calc(decimal x, decimal y, decimal z = 1)
{
return (x + y) * z;
}
kann ein Entwickler in
C# 12.0 nun auch diesen
Lambda-Ausdruck schreiben:
var calc = (decimal x, decimal y, decimal z = 1) => (x + y) * z;
Das geht auch mit Statement Lambdas. Anstelle dieser
Methode mit optionalem Parameter color
public void Print(object text, ConsoleColor? color = null)
{
if (color != null) Console.ForegroundColor = color.Value;
Console.WriteLine(text);
if (color != null) Console.ResetColor();
}
kann nun dieses Statement Lambda treten:
var Print = (object text, ConsoleColor? color = null) =>
{
if (color != null) Console.ForegroundColor = color.Value;
Console.WriteLine(text);
if (color != null) Console.ResetColor();
};