CSharp 9.0 (C# 9.0)

Eintrag zuletzt aktualisiert am: 24.02.2022

C# 9.0 ist der Nachfolger von C# 8.0 und ist am 10.12.2020 zusammen mit .NET 5.0 erschienen.

Support

Microsoft unterstützt offiziell C# 9.0 nur in .NET 5.0 und höher. Es ist aber dennoch möglich, die meisten Sprachfeatures auch in älteren .NET-Versionen (.NET Framework, .NET Core) zu nutzen.

Neue Sprachfeatures in C# 9.0

Null Referenz-Prüfungen / Nullable Reference Types string? !.
Standardimplementierungen in Schnittstellen (*1)
Switch Expressions
Index ^ und Range .. (*1)
Null Coalescing Assignment ??=
Alternative für verbatim interpolated Strings: @$ zusätzlich zu $@
Async Streams (*2)
Static Local Functions
using-Deklarations ohne Blöcke
Recursive Patterns
Unmanaged Constructed Types
Readonly-Mitglieder in einer Struktur
Dispose() für ref structs (Strukturen auf dem Stack)

(*1) erfordert .NET Standard 2.1, d.h. nur für .NET Core, Xamarin, Mono und Unity. Nicht für .NET Framework!
(*2) Möglich unter .NET Framework mit zusätzlichen Nuget-Paketen https://montemagno.com/use-csharp-8-everywehre