Programmiersprache

C# 13 - neue Funktionen und Verbesserungen im Überblick

von - 12.07.2024
Foto: dotnetpro
In der Vorschauversion können Entwickler einige Neuerungen von C# 13 ausprobieren. Kathleen Dollard, Principal Program Manager bei .NET, gibt einen detaillierten Einblick.
Die neueste Version von C# verbessert bestehende Features. Dazu zählt zum Beispiel die Erweiterung der params-Sammlung. Das params-Schlüsselwort funktioniert nun mit allen Typen, die über einen Collection-Ausdruck erzeugbar sind. Dies erhöht die Flexibilität beim Schreiben und Aufrufen von Methoden erheblich. So können beispielsweise params-Parameter nun vom Typ List<string> sein und somit auch LINQ-Ausdrücke akzeptieren.
Mit .NET 9 wird der neue Typ System.Threading.Lock eingeführt, der effizienter ist als das Sperren auf einer beliebigen System.Object-Instanz. Der C#-13-Compiler erkennt automatisch, wenn ein Lock-Objekt verwendet wird, und generiert die entsprechenden Aufrufe zur API.
Der Index-Operator ^ ermöglicht es, Positionen in sammelbaren Kollektionen relativ zum Ende der Sammlung anzugeben. Diese Funktion kann nun auch in Initialisierern verwendet werden.
C# 13 führt die neue Escape-Sequenz \e für das ESCAPE-Zeichen ein. Dies vereinfacht das Arbeiten mit Terminalen und ANSI-Escape-Codes erheblich.
Ähnlich wie partielle Methoden unterstützen partielle Eigenschaften in erster Linie Source-Generatoren. Dies ermöglicht es Entwicklern, effizienteren Code zu erzeugen und natürliche APIs zu gestalten.
Die Regeln zur Bestimmung des natürlichen Typs von Methodengruppen wurden verfeinert, was zu weniger Compilerfehlern und einer insgesamt besseren Entwicklererfahrung führt.
C# 13 erlaubt es nun, in asynchronen Methoden und Iteratoren lokale ref-Variablen und unsichere Kontexte zu deklarieren. Diese Variablen können jedoch nicht über await- oder yield return-Grenzen hinweg bestehen bleiben.
Obwohl die Erweiterungstypen nicht in C# 13 enthalten sein werden, sollen sie in frühen Vorschauen von C# 14 (NET 10) verfügbar sein.
Verwandte Themen