Neuerungen in .NET 10 24.04.2025, 08:20 Uhr

Erweiterungen in C# 14

Neue Extension Members und die vereinfachte nullbedingte Zuweisung.
(Quelle: EMGenie)
Mit .NET 10 kommen einige spannende Neuerungen für C# 14. Eine davon sind die Extension Members, die statische Methoden, Instanz-Eigenschaften sowie statische Eigenschaften unterstützen. Dies stellt eine signifikante Erweiterung der bekannten Funktionalitäten dar und eröffnet neue Möglichkeiten zur Erhöhung der Modularität und Lesbarkeit von Code.
Die Herausforderung bei der Einführung dieser neuen Funktionalitäten lag darin, wie man sie effektiv deklariert. Der Fokus lag darauf, die Unterstützung für das neue Syntax sowohl für Instanzglieder als auch für bestehende Erweiterungsmethoden zu gewährleisten.
Ein Beispiel für die Anwendung dieser neuen Extension Blocks ist die Verwendung von Erweiterungsmethoden, die spezifisch für einen Typ gedacht sind. Statt wie zuvor nur statische Methoden zu unterstützen, können Entwickler nun auch Instanzmethoden und Eigenschaften innerhalb einer Erweiterung definieren. Die Nutzung dieser neuen Erweiterungen könnte so aussehen: Man definiert eine Klasse Extensions und erstellt einen Block für eine Liste von ganzen Zahlen, in dem sowohl die Methode WhereGreaterThan als auch eine neue Eigenschaft IsEmpty enthalten sind.
public static class Extensions
{
  extension (IEnumerable<int> source)
  {
    public IEnumerable<int> WhereGreaterThan(
       int threshold) => source.Where(x => x > threshold);

    public bool IsEmpty => !source.Any();
  }
}
Damit ist ein ganz anderes Programmierparadigma als mit den herkömmlichen Methoden möglich. Das Schöne daran ist, dass bestehende Erweiterungsmethoden nicht konvertiert werden müssen – Entwickler können weiterhin die gewohnten Stile nutzen oder nach Bedarf auf die neuen Features umsteigen.
Ein weiteres wesentliches Feature, das in dieser Version eingeführt wurde, ist das null-conditional assignment. Dies ermöglicht es, einer Eigenschaft oder einem Feld nur dann einen Wert zuzuweisen, wenn das übergeordnete Objekt existiert. Anstatt eine Null-Prüfung manuell durchzuführen, können Programmierer einfach den neuen Syntax verwenden:
customer?.Age = newAge; 
was den Code erheblich vereinfacht.


Das könnte Sie auch interessieren