Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 2 Min.

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.
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

Neueste Beiträge

Vor dem Prompt ist nach dem Prompt - KI für KMU, Teil 2
Wie bereitet man Anfragen an Large Language Models bestmöglich vor?
7 Minuten
13. Nov 2025
Builder meets Faker - Testdata-Builder, Teil 2
Wer viele Testdaten braucht, liebt Bogus: Die Library erzeugt auf Knopfdruck realistische Daten und geht mit dem Builder-Pattern eine perfekte Kombination ein.
6 Minuten
12. Nov 2025
Generative AI und Python - Python und AI, Teil 4
Generative KI mit Python nutzen und so die Basis für eigene Anwendungen schaffen.
7 Minuten
Miscellaneous

Das könnte Dich auch interessieren

Attraktives GUI mit Spectre.Console - Best of NuGet, Teil 6
Mit der Bibliotheksfamilie Spectre.Console steht ein neues Produkt ante portas, das die Realisierung von visuell ansprechenden Kommandozeileninterfaces zu erleichtern sucht.
7 Minuten
29. Okt 2025
Loggingdaten-Einlaufstelle mit Komfortfunktionen - Best of NuGet, Teil 5
Die in Android implementierte Logging-Funktion ist ein leistungsfähiges Beispiel für moderne Logging-Systeme. Mit Serilog steht ein ähnliches System für .NET-Applikationen zur Verfügung, das allerdings einige weit über das große Vorbild hinausgehende Funktionen offeriert.
6 Minuten
22. Okt 2025
Benchmark im Unit-Test-Stil - Best of NuGet, Teil 4
NuGet-Pakete können das Leben des .NET-Entwicklers sogar um neue Werkzeuge erweitern, die sich auf den Entwicklungsworkflow (und nicht den bearbeiteten Code) auswirken. Mit BenchmarkDotNet steht ein Musterbeispiel dieses Konzepts zur Verfügung, das die Überprüfung der Performance von Code aller Arten ermöglicht.
7 Minuten
16. Okt 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige