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

Hierarchische Testdata-Builder - Testdata-Builder, Teil 1
Lesbare Tests bei tiefen Objekthierarchien mit dem Collection-Builder-Pattern.
4 Minuten
DDC hakt nach: Bringt Blazor 10 Ordnung ins Chaos?
Mit Blazor lässt sich Code in C# schreiben, der im Web-Frontend ausgeführt wird. Die Version 10 soll Ordnung in das gewachsene Framework bringen. Dr. Holger Schwichtenberg verrät im Interview, was sich getan hat.
3 Minuten
3. Nov 2025
Deep Learning mit Python - Python und AI, Teil 3
In der heutigen KI-Entwicklung spielen Deep-Learning-Frameworks eine zentrale Rolle. Ein Vergleich der beiden populärsten Bibliotheken TensorFlow und PyTorch.
10 Minuten
Miscellaneous

Das könnte Dich auch interessieren

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