Neu in .NET 8.0 [7]: Optionale Parameter in Lambda-Ausdrücken in C# 12.0
Die aktuelle Version von Microsofts Programmiersprache C# erweitert sowohl reguläre Lambdas als auch Statement Lambdas.
- Dr. Holger Schwichtenberg
Ein Lambda-Ausdruck ist seit C# 3.0 ist eine stark verkürzte Schreibweise für eine anonyme Methode. Lambdas erlaubten vor C# 12.0 jedoch keine optionalen Parameter. Das hat sich in C# 12.0 geändert.
Beispiel: Anstelle dieser Funktion mit optionalem Parameter z
public decimal Calc(decimal x, decimal y, decimal z = 1)
{
return (x + y) * z;
}
ist in C# 12.0 nun auch folgender Lambda-Ausdruck erlaubt:
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();
};
(rme)