C# 14 Sprachfeatures: Extension Members, field-Keyword & mehr (.NET 10)

Darius S.
02/2026

C# 14 Features: Extension Members, field-Keyword & Partial Members

Einleitung

Microsoft stellt traditionell jedes Jahr im November eine neue .NET-Version vor - und mit ihr auch eine neue Version der Programmiersprache C#. Im November 2025 war es erneut so weit: Mit .NET 10, der neuen Long Term Support (LTS) Version, wurde auch C# 14 als aktueller Stand der Sprache veröffentlicht.

Die Neuerungen in C# 14 fallen insgesamt überschaubar aus. Dennoch bringen sie gezielte Verbesserungen, die den Entwicklungsalltag vereinfachen. Besonders die neuen Quality-of-Life-Features sorgen für kompakteren, besser lesbaren Code und erhöhen die Ausdrucksstärke der Sprache. Gerade bei Projekten, die noch nicht auf .NET 10 migriert wurden, werden einige dieser Neuerungen schnell vermisst.

Der folgende Überblick stellt ausgewählte neue Sprachfeatures von C# 14 vor und zeigt anhand von Beispielen, welchen praktischen Nutzen sie bieten.

Extension Members

Mit den neuen Extension Members lassen sich bestehende Typen nicht mehr nur um Methoden, sondern auch um Properties und Operatoren erweitern – ohne den Typ selbst zu verändern. Dadurch wird der Code deutlich flexibler und vermeidet den Einsatz von Vererbung oder Wrapper-Klassen.

Dieses Sprachfeature eignet sich besonders für Szenarien, in denen bereits Extension-Methoden verwendet wurden, etwa bei externen Bibliotheken, die nicht direkt angepasst werden können.

1//Extensions Members: 
2
3// vorher 
4public static class StringExtensionsOld 
5{ 
6    public static bool IsBlank(this string s) => string.IsNullOrWhiteSpace(s); 
7} 
8
9// Jetzt: 
10
11public static class StringExtensionsNew 
12{ 
13    // Instanz-Erweiterungen für string 
14    extension(string s) 
15    { 
16        // Property fühlt sich „nativ“ an 
17        public bool IsBlank => string.IsNullOrWhiteSpace(s); 
18    } 
19    
20    // Statische Erweiterungen auf dem Typ string 
21    extension(string) 
22    { 
23        // Beispiel: „Identität“ als statische Property 
24        public static string Identity => string.Empty; 
25
26        // Operator nur als Demo – hier: Konkatenation mit Trennstrich 
27        public static string operator +(string left, string right) => $"{left}-{right}"; 
28    } 
29}

Das field-Schlüsselwort

Das neue field-Keyword vereinfacht die Arbeit mit Properties, indem es den direkten Zugriff auf das implizite Backing-Field innerhalb eines Setters ermöglicht. Ein explizit definiertes privates Feld ist damit nicht mehr erforderlich.

Da es sich um ein reines Compiler-Feature handelt, entsteht kein zusätzlicher Runtime-Overhead. Der Code wird kompakter und besser lesbar, insbesondere bei Validierungslogik in Settern.

1// Field Keyword 
2
3public class Person 
4{ 
5    private int _age; 
6
7    public int Age 
8    { 
9        get => _age; 
10        set 
11        { 
12            if (value < 0) throw new ArgumentOutOfRangeException(nameof(value)); 
13            _age = value; 
14        } 
15    } 
16}  
17
18// Jetzt mit field keyword 
19
20public class Person2 
21{ 
22    public int Age 
23    { 
24        get; // Auto-Getter 
25        set 
26        { 
27            if (value < 0) throw new ArgumentOutOfRangeException(nameof(value)); 
28            field = value; // direkter Zugriff auf das implizite Backing-Field 
29        } 
30    } 
31}

Null-conditional Assignments

Die bekannte Null-Conditional-Syntax (?.) wurde in C# 14 erweitert. Sie kann nun auch für Zuweisungen verwendet werden. Ein Wert wird dabei nur gesetzt, wenn das Zielobjekt nicht null ist.

Dieses kleine, aber wirkungsvolle Sprachfeature reduziert Boilerplate-Code und verbessert die Lesbarkeit, insbesondere in defensivem Code.

1// Null-conditional Assignments 
2
3public class Customer 
4{ 
5    public int Id { get; set; } 
6    public string Order { get; set; } = string.Empty; 
7
8    private Customer? GetCustomerOrNull() => null; // Beispiel-Methode 
9    
10    private string CreateOrder(int customerId) => $"Order for Customer {customerId}"; 
11
12    // Bisher 
13
14    public void SomeMethod() 
15    { 
16        Customer? customer = GetCustomerOrNull(); 
17        if (customer != null) 
18        { 
19            customer.Order = CreateOrder(customer.Id); 
20        } 
21    } 
22
23    // Jetzt 
24
25    public void SomeMethodNew() 
26    { 
27        Customer? customer = GetCustomerOrNull(); 
28        customer?.Order = CreateOrder(customer?.Id ?? 0); 
29    } 
30} 

Partial Members

Partial-Klassen sind seit Langem Bestandteil von C#. Mit C# 14 können nun auch Konstruktoren und Events als partial definiert werden. Damit erweitern sich die Möglichkeiten für Partial Members deutlich.

Der Einsatz sollte aus Gründen der Wartbarkeit bewusst erfolgen. Besonders bei Code-Generatoren oder Frameworks eröffnen sich jedoch neue, saubere Trennungsmöglichkeiten zwischen generiertem und manuell geschriebenem Code.

1// File1.cs - Generierter Code 
2
3public partial class DatabaseContext 
4{ 
5    private partial DatabaseContext(string connectionString); 
6
7  
8    public static DatabaseContext Create(string connectionString) 
9    { 
10        return new DatabaseContext(connectionString); 
11    } 
12} 
13
14// File2.cs - Manuelle Implementierung 
15
16public partial class DatabaseContext 
17{ 
18    private readonly ILogger _logger; 
19
20
21    private partial DatabaseContext(string connectionString) 
22    { 
23        _logger = LoggerFactory.Create(); 
24        _logger.LogInfo($"Initializing database with: {connectionString}"); 
25        // Weitere Initialisierungslogik... 
26    } 
27}

Fazit

C# 14 bringt keine radikalen Änderungen, sondern gezielte Verbesserungen, die den Entwicklungsalltag effizienter gestalten. Die neuen Sprachfeatures fügen sich nahtlos in bestehende Konzepte ein und erhöhen vor allem die Ausdrucksstärke und Lesbarkeit des Codes.

Durch den jährlichen Release-Zyklus von .NET – und mit .NET 10 als LTS-Version – wird die Migration auf aktuelle Versionen zunehmend vereinfacht. Viele zunächst unscheinbare Neuerungen entwickeln sich so über die Zeit zu selbstverständlichen Bestandteilen moderner C#- und .NET-Entwicklung.

No items found.
Darius S.

Mehr zum Thema

Pfeil nach rechts (Verlinkung)
API Architektur mit .NET
02/2026

API-Architektur mit .NET

Blauer Pfeil nach rechts (Verlinkung)
Effiziente nutzung des ORM Frameworks
02/2026

EF Core best practices

Blauer Pfeil nach rechts (Verlinkung)
Isolierte Unit-Tests in .NET
02/2026

Unit-Tests in C#: Mocking-Strategie für testbare .NET-Anwendungen

Blauer Pfeil nach rechts (Verlinkung)
Business-Central-Webservice – Authentifizierung in der Praxis (C#)
12/2025

Business-Central-Webservice – Authentifizierung in der Praxis (C#)

Blauer Pfeil nach rechts (Verlinkung)

Devware GmbH verpflichtet sich, Ihre Privatsphäre zu schützen. Wir benötigen Ihre Kontaktinformationen, um Sie bezüglich unserer Produkte und Dienstleistungen zu kontaktieren. Mit Klick auf Absenden geben Sie sich damit einverstanden. Weitere Informationen finden Sie unter Datenschutz. Ihre Daten behandeln wir vertraulich. Versprochen.
Vielen Dank für Ihr Vertrauen.
Unser Team prüft Ihre Anfrage sorgfältig und meldet sich in der Regel innerhalb von 48 Stunden bei Ihnen zurück.
Falls es besonders eilig ist, erreichen Sie uns auch telefonisch:
+ 49 (0) 202 478 269 0.
Da ist etwas schief gegangen beim Absenden des Formulars.