Neu in .NET 10.0 [11]: Vereinfachungen bei Lambda-Ausdrücken in C# 14.0
In C# 14.0 lassen sich Parameter-Modifizierer in Lambda-Ausdrücken verwenden, ohne dabei den Datentyp benennen zu müssen.
(Bild: Pincasso/Shutterstock)
- Dr. Holger Schwichtenberg
In Lambda-Ausdrücken kann man in C# 14.0 jetzt Parameter-Modifizierer wie scoped, ref, in, out und ref readonly verwenden, ohne dabei den Datentyp benennen zu müssen.
Ein Beispiel: Für den Delegate
delegate bool Extract<T>(string text, out T result);
musste man vor C# 14.0 Folgendes schreiben:
Extract<int> ExtractOld = (string text, out int result)
=> Int32.TryParse(text, out result);
Videos by heise
Ab C# 14.0 können Entwicklerinnen und Entwickler im Lambda-Ausdruck die Nennung der Datentypen string und int weglassen, weil diese Datentypen aus dem Kontext bereits klar sind:
Extract<int> ExtractNew = (text, out result)
=> Int32.TryParse(text, out result);
Das geht allerdings nicht, wenn ein variadischer Parameter mit params zum Einsatz kommt:
Add<int> AddOld = (out int result, params List<int> data)
=> { result = data.Sum(); return true; };
Nicht möglich ist also folgende Verkürzung:
Add<int> AddNew = (out result, params data)
=> { result = data.Sum(); return true; };
(rme)