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.​

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen

(Bild: Pincasso/Shutterstock)

Lesezeit: 1 Min.
Von
  • 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.

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

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)