DevOps
24.11.2022
Microsoft

Neues in C# 11, Überblick und Beispiele

Microsoft.com
Mads Torgersen, C#-Chef-Designer in Microsofts .NET Team hat einen Appetizer zu den Neuerungen in C# 11 zusammengestellt, inklusive Beispielen.
Zusammen mit .NET 7 ist im November auch eine neue Version von C# erschienen, die mittlerweile elfte Auflage der effektivsten und beliebtesten .NET-Programmiersprache. Als die interessantesten Neuerungen stellt Mads Torgersen, C#-Chef-Designer in Microsofts .NET Team auf dieser Seite die folgenden Features vor:
UTF-8-String-Literale: Um den Aufwand und den Performance-Overhead der Konvertierung von UTF-16 nach UTF-8 zu minimieren, können Entwickler jetzt einfach ein u8-Suffix an ihre String-Literale anhängen, um sie sofort in UTF-8 zu erhalten, sprich: Sie werden erst gar nicht in UTF-16 aufgebaut.
Raw-String-Literale: Sie beheben den Nachteil, dass C#-String-Literale oft Steuerzeichen enthalten. Raw String-Literale enthalten überhaupt keine Escape-Zeichen, alles ist Inhalt.
Abstrahieren über statische Member: Bisher konnte man schlecht über von Natur aus statische Operationen abstrahieren. In C# 11 gibt es nun die Unterstützung für statische virtuelle Member in Schnittstellen (war als Vorschau in C# 10). Damit lässt sich jetzt eine einfache mathematische Schnittstelle definieren.
List Patterns: Der Musterabgleich wurde in C# 7 eingeführt und hat sich seither zu einer wichtigen und leistungsfähigen Kontrollstruktur entwickelt. Mit List Patterns lassen sich Muster rekursiv auf die einzelnen Elemente einer listenartigen Eingabe anwenden - oder auf einen Ausschnitt daraus.
Required members: Beim Erstellen von Typen, die Objektinitialisierer verwenden, konnte man bisher nicht angeben, dass einige Eigenschaften initialisiert werden müssen. Jetzt lässt sich bestimmen, dass eine Eigenschaft oder ein Feld erforderlich ist, was bedeutet, dass sie/es durch einen Objektinitialisierer initialisiert werden muss.
Beispiele für die genannten Neuerungen finden Sie auf dieser Seite. Die komplette Whats-New-Liste sowie die Liste der Breaking Changes zu C# 11 pflegt Microsoft hier.

mehr zum Thema