Start Debugging

C# 14 Features

Was in C# 14 wirklich ausgeliefert wurde, mit Code.

Dieses Thema indexiert alles, was ich über die Sprachfeatures von C# 14 geschrieben habe: Union Types, partial-Konstruktoren und -Events, Extension Types, und die kleineren ergonomischen Verbesserungen, die man in den offiziellen Release Notes leicht übersieht.

Womit anfangen

Starten Sie mit den Beiträgen zu Union Types und partial-Mitgliedern, wenn Sie von C# 12 kommen - das sind die größten Verhaltensänderungen. Alles andere ist Ergonomie.

Was auf dieser Seite steht

Die Liste unten sammelt automatisch alle Beiträge mit einem der Tags: c# 14, csharp 14, c#, csharp, c# language. Neueste zuerst.

Index (255 Beiträge)

2026 / 08

  • Der Copilot-Provider von Agent Framework macht die Copilot CLI zu einem gewöhnlichen AIAgent

    Microsoft.Agents.AI.GitHub.Copilot 1.16.0 erschien am 2026-07-30. Die Laufzeit der Copilot CLI liegt jetzt hinter der AIAgent-Abstraktion, Berechtigungen sind standardmäßig verweigert, und Squad hängt ein ganzes Agenten-Team als einen einzigen AIAgent ein.

  • Optionen beim Start mit IValidateOptions<T> in .NET 11 validieren

    Implementieren Sie IValidateOptions<T>, registrieren Sie es in der Dependency Injection und hängen Sie ValidateOnStart an, damit eine fehlerhafte appsettings.json den Prozess beendet statt die erste Anfrage, die sie berührt. Behandelt die .NET-11-Überladung Validate<TValidator>(), asynchrone Validierung über IAsyncValidateOptions<T> und die drei Stellen, an denen ValidateOnStart stillschweigend nichts tut.

  • Kestrel in ASP.NET Core 11 für HTTP/3 konfigurieren

    Ein vollständiger Leitfaden zur Aktivierung von HTTP/3 in Kestrel unter ASP.NET Core 11: die Endpunkt-Konfiguration mit HttpProtocols.Http1AndHttp2AndHttp3, die MsQuic-Plattformanforderungen unter Windows, Linux und macOS, warum die erste Anfrage nie HTTP/3 ist, die Überprüfung mit HttpClient und Middleware, das Tuning von QuicTransportOptions sowie die Firewall- und Proxy-Fallstricke, die zu einem stillen Fallback führen.

  • new Regex(...) durch den [GeneratedRegex] Source Generator in .NET 11 ersetzen

    Ein vollständiger Leitfaden zur Umstellung von new Regex(pattern, RegexOptions.Compiled) auf [GeneratedRegex] in .NET 11: die mechanische Umschreibung, partielle Methoden gegenüber partiellen Eigenschaften, gemessene Startzeit- und Durchsatzwerte, die Diagnosen SYSLIB1040-1045 und die zwei Muster, bei denen der Generator stillschweigend auf eine zwischengespeicherte Regex zurückfällt.

  • CPU-intensive Arbeit in einer Blazor WebAssembly App mit Web Workers in .NET 11 ausführen

    Ein vollständiger Leitfaden, um CPU-intensive Arbeit in .NET 11 vom UI-Thread von Blazor WebAssembly zu nehmen: warum Task.Run nicht hilft, die neue blazorwebworker-Vorlage, die WebWorkerClient-API mit Abbruch und Timeouts, die Marshalling-Grenzen von JSExport und die Kosten der zweiten Laufzeit pro Worker.

  • IOptions<T> vs IOptionsSnapshot<T> vs IOptionsMonitor<T> in .NET 11

    Verwenden Sie standardmäßig IOptions<T>. Greifen Sie zu IOptionsMonitor<T>, wenn ein Singleton Konfigurationsänderungen sehen muss, und zu IOptionsSnapshot<T> nur dann, wenn ein Scoped-Consumer einen für eine Anfrage stabilen Wert benötigt. Entscheidend ist die Lebensdauer des Consumers, nicht die Form der Einstellungen.

2026 / 07

2026 / 06

2026 / 05

2026 / 04

2026 / 02

2026 / 01

2025 / 04

2025 / 01

  • .NET-Performance: ToList vs. ToArray

    .NET 9 verbessert die ToArray-Performance deutlich durch InlineArray und macht es schneller und speicherschonender als ToList. Sehen Sie sich Benchmarks an, die .NET 8 mit .NET 9 vergleichen.

  • C# 13: params-Collections mit jedem erkannten Sammlungstyp verwenden

    C# 13 erweitert den params-Modifier über Arrays hinaus, um Span, ReadOnlySpan, IEnumerable und andere Sammlungstypen zu unterstützen, was Boilerplate reduziert und die Flexibilität erhöht.

  • Wie man auf C# 13 umstellt

    Wie Sie 'Feature is not available in C# 12.0' beheben und Ihr Projekt auf C# 13 umstellen, indem Sie das Target Framework ändern oder LangVersion in Ihrer .csproj-Datei setzen.

2024 / 12

  • Was ist neu in C# 14.0

    Eine Übersicht aller neuen Funktionen in C# 14.0, einschließlich des field-Schlüsselworts, Erweiterungsmember, null-bedingter Zuweisung, impliziter Span-Konvertierungen und mehr.

  • Versionsgeschichte der Sprache C#

    Die Entwicklung von C# hat es in eine moderne, leistungsstarke Sprache verwandelt. Dieser Leitfaden zeichnet jeden wichtigen Meilenstein nach. Die Anfangsjahre (C# 1.0 - 1.2). C# wurde 2002 als Hauptsprache für das .NET Framework eingeführt. Es fühlte sich wie Java an, jedoch mit Fokus auf Windows-Entwicklung. Version 1.2 kam kurz darauf mit kleinen...

2023 / 11

2023 / 10

  • C# Wie Sie Features als experimentell kennzeichnen

    Ab C# 12 lassen sich Typen, Methoden, Properties oder Assemblies mit dem neuen ExperimentalAttribute als experimentell markieren. Erfahren Sie, wie Sie es mit diagnosticId, pragma-Tags und UrlFormat einsetzen.

  • C# ref readonly-Parameter

    Der ref readonly-Modifier in C# bietet eine transparentere Möglichkeit, schreibgeschützte Referenzen zu übergeben. Erfahren Sie, wie er den in-Modifier mit besseren Einschränkungen und mehr Sichtbarkeit für den Aufrufer verbessert.

  • C# Wie mischt man ein Array?

    Der einfachste Weg, ein Array in C# zu mischen, ist Random.Shuffle, eingeführt in .NET 8. Es arbeitet in-place und funktioniert sowohl mit Arrays als auch mit Spans.

  • C# Was ist eine NullReferenceException und wie behebt man sie?

    Erfahren Sie, was eine NullReferenceException in C# auslöst, wie Sie sie debuggen und mit Null-Prüfungen, dem null-conditional Operator und nullbaren Referenztypen vermeiden.

  • TypeInfoResolver zu bestehenden JsonSerializerOptions hinzufügen/entfernen

    Erfahren Sie, wie Sie TypeInfoResolver-Instanzen mit der neuen TypeInfoResolverChain-Eigenschaft in .NET 8 zu bestehenden JsonSerializerOptions hinzufügen oder daraus entfernen.

  • C# 12 Interceptors

    Lernen Sie C# 12 Interceptors kennen, ein experimentelles Compiler-Feature in .NET 8, mit dem Sie Methodenaufrufe zur Compile-Zeit über das InterceptsLocation-Attribut ersetzen können.

2023 / 09

2023 / 08

  • C# 12 Inline Arrays

    Inline Arrays ermöglichen es, ein Array fester Größe innerhalb eines struct-Typs anzulegen. Eine solche Struct mit Inline-Buffer sollte eine Leistung erreichen, die mit einem unsafe Fixed-Size-Buffer vergleichbar ist. Inline Arrays sind in erster Linie für das Runtime-Team und einige Bibliotheksautoren gedacht, um in bestimmten Szenarien die Performance zu verbessern. Sie...

  • C# 12 Collection Expressions

    C# 12 bringt eine neue, vereinfachte Syntax zum Erstellen von Arrays. Sie sieht so aus: Wichtig: Der Array-Typ muss explizit angegeben werden, var lässt sich für die Variablendeklaration also nicht verwenden. Genauso können Sie ein Span<int> erstellen: Mehrdimensionale Arrays Die Vorteile dieser knappen Syntax...

  • C# Wie warten Sie, bis ein Prozess endet?

    Mit der Methode WaitForExit können Sie auf das Ende eines Prozesses warten. Ihr Code wartet synchron, bis der Prozess fertig ist, und führt dann die Ausführung fort. Sehen wir uns ein Beispiel an: Der Code oben startet einen neuen cmd.exe-Prozess und führt den Befehl timeout 5 aus. Der Aufruf process.WaitForExit() zwingt Ihr Programm...

  • C# 12 Alias für beliebige Typen

    Die using-alias-Direktive wurde in C# 12 gelockert, sodass Alias für beliebige Typen vergeben werden können, nicht nur für benannte Typen. Damit lassen sich nun Tuples, Pointer, Array-Typen, generische Typen usw. mit Aliasen versehen. Statt der vollständigen strukturellen Form eines Tuples können Sie einen kurzen, aussagekräftigen Aliasnamen verwenden...

  • Gibt es in C# ein Äquivalent zur With...End With-Anweisung?

    Die With...End With-Anweisung in VB führt eine Reihe von Anweisungen aus, die sich wiederholt auf ein einziges Objekt beziehen, mit einer vereinfachten Syntax für den Zugriff auf dessen Member. Gibt es in C# ein Äquivalent? Nein. Am nächsten kommen Objektinitialisierer, die jedoch nur beim Erzeugen neuer Objekte funktionieren.

2023 / 07

  • C# 12 - Primärkonstruktoren

    Ab C# 12 lassen sich Primärkonstruktoren in Klassen und Structs definieren. Die Parameter werden in Klammern direkt nach dem Typnamen angegeben. Sie haben einen weiten Geltungsbereich: Sie können Eigenschaften oder Felder initialisieren, als Variablen in Methoden oder lokalen Funktionen dienen und an einen Basiskonstruktor übergeben werden.

2023 / 06

  • Wie Sie mit der Programmierung in C# beginnen

    Ein Einsteigerleitfaden für den Einstieg in die Programmierung mit C#, von der Einrichtung von Visual Studio über das Schreiben Ihres ersten Programms bis hin zu Lernressourcen.

  • Wie Sie zu C# 12 wechseln

    Beheben Sie C#-12-Sprachversionsfehler, indem Sie Ihr Target Framework auf .NET 8 aktualisieren oder LangVersion in Ihrer .csproj-Datei setzen.

  • Was ist neu in C# 12

    Ein Überblick über die neuen Features in C# 12, darunter Primärkonstruktoren, Standard-Lambda-Parameter, Collection Expressions, Inline Arrays und mehr.

2023 / 05

2023 / 03

2020 / 11

2020 / 05

  • C# using var (using-Deklaration)

    Verwenden Sie die using-Deklarationen in C# 8 (`using var`), um IDisposable-Objekte ohne verschachtelte geschweifte Klammern freizugeben. Syntax, Geltungsbereichsregeln und wann `using`-Blöcke vorzuziehen sind.

2020 / 04

  • C# 8.0 Null-Coalescing-Zuweisung ??=

    Erfahren Sie, wie der Null-Coalescing-Zuweisungsoperator (??=) in C# 8.0 funktioniert, mit praktischen Beispielen wie Caching und bedingten Zuweisungen.

2019 / 01

2013 / 10

2013 / 06

2013 / 05

2012 / 01

Alle Themen Startseite