.NET Framework 14.11.2019, 13:22 Uhr

C# 8 für alle Projekte nutzen

Die aktuellste Version von C# gibt es jetzt schon rund drei Monate. Wer die neuen Funktionen für alle Projekte nutzen möchte, muss lediglich zwei Hemmschwellen beseitigen.
.NETStanard 2.0 mit auf C# 8 veränderter LangVersion
(Quelle: montemagno.com)
Offiziell veröffentlicht wurde C# 8 im September auf der .NET Conf zusammen mit .NET Core 3 und Visual Studio 16.3 (beziehungsweise 8.3 bei der Edition für den Mac). Zwar waren .NET Core 3 sowie .NET Standard 2.1 bei der Veröffentlichung eng mit C# 8 verknüpft, jedoch lässt sich die neueste Sprachversion auch mit älteren .NET-Varianten einsetzen, beispielsweise mit .NET Standard 2.0. Dafür sollte man dann aber die aktuellste Version von Visual Studio nutzen. Die kommt mit C#-8-Compiler und wenn der Code komplett kompiliert läuft er in der Regel auch. Zwei bekannte Hemmschwellen gilt es dafür noch zu überwinden:
  • Erstens gibt es eine Default-Einstellung für die Sprachversion. Bei .NET Standard 2.0 ist das C# 7.3. Dies kann man ändern, indem man in der csproj-Datei den Eintrag LangVersion auf 8.0 setzt: 8.0
  • Die zweite Hemmschwelle sind einige wenige Typen, die nicht sofort kompiliert werden können, wie beispielsweise IAsyncEnumerable. Diese lassen sich jedoch über die beiden NuGet-Pakete Microsoft.Bcl.AsyncInterfaces und Microsoft.Bcl.HashCode nachrüsten.
Sind diese Hürden genommen, bleiben nur noch wenige Einschränkungen bei der Verwendung von C# 8 in Projekten ohne .NET Core 3/.NET Standard 2.1. Einige der Funktionen wie Indizes und Bereiche sind Laufzeitfunktionen, was bedeutet, dass sie nicht verfügbar sind. Versucht man sie zu benutzen, werden sie nicht kompilieren, so dass der Fehler sofort deutlich wird. Braucht man die Funktionen unbedingt, hilft dann nur ein Upgrade auf .NET Core 3.0 beziehungsweise .NET Standard 2.1.
Mehr zu diesem Thema lesen Sie in diesem Beitrag von Microsoft-Mitarbeiter James Montemagno.
Übersicht: Neues in C# 8.0


Das könnte Sie auch interessieren