Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Informationen in diesem Artikel gelten für .NET 5 und höher. Informationen zu UWP-Projekten finden Sie im Artikel zum Auswählen einer UWP-Version.
Die C#-Sprachreferenz dokumentiert die zuletzt veröffentlichte Version der C#-Sprache. Außerdem enthält sie erste Dokumentation für Features in der öffentlichen Vorschau für die kommende Sprachversion.
In der Dokumentation werden alle Features identifiziert, die in den letzten drei Versionen der Sprache oder in der aktuellen öffentlichen Vorschau eingeführt wurden.
Tipp
Informationen dazu, wann ein Feature erstmals in C# eingeführt wurde, finden Sie im Artikel zum Versionsverlauf der C#-Sprache.
In Visual Studio ist die Option zum Ändern der Sprachversion über die Benutzeroberfläche deaktiviert, da die Standardversion am ZielframeworkTFM des Projekts () ausgerichtet ist. Diese Standardkonfiguration gewährleistet die Kompatibilität zwischen Sprachfunktionen und Laufzeitunterstützung. Um die Sprachversion in Visual Studio zu ändern, ändern Sie das Zielframework des Projekts.
Beispielsweise aktualisiert das Ändern des Ziels TFM (z. B. von .NET 6 auf .NET 9) die Sprachversion entsprechend, von C# 10 auf C# 13. Dieser Ansatz verhindert Probleme mit der Laufzeitkompatibilität und minimiert unerwartete Buildfehler aufgrund nicht unterstützter Sprachfunktionen.
Wenn Sie eine bestimmte Sprachversion benötigen, die sich von der automatisch ausgewählten unterscheidet, verwenden Sie die Methoden in diesem Artikel, um die Standardeinstellungen direkt in der Projektdatei außer Kraft zu setzen.
Warnung
Legen Sie das LangVersion Element nicht auf latest. Die Einstellung latest bedeutet, dass der installierte Compiler seine neueste Version verwendet. Der Wert von latest kann von Maschine zu Maschine variieren, was Builds unzuverlässig macht. Darüber hinaus ermöglicht es Sprachfeatures, die möglicherweise Laufzeit- oder Bibliotheksfeatures erfordern, die nicht im aktuellen SDK enthalten sind.
Wenn Sie Ihre C#-Version explizit angeben müssen, haben Sie verschiedene Möglichkeiten:
- Bearbeiten Sie die Projektdatei manuell.
- Festlegen der Sprachversion für mehrere Projekte in einem Unterverzeichnis
- Konfigurieren Sie die LangVersion-Compileroption.
Tipp
Die Sprachversion in Visual Studio wird auf der Projekteigenschaftenseite angezeigt. Auf der Registerkarte Build wird im Bereich Erweitert die ausgewählte Version angezeigt.
Wenn Sie wissen möchten, welche Sprachversion Sie derzeit verwenden, fügen Sie #error version (Groß-/Kleinschreibung beachten) in Ihren Code ein. Durch dieses Pragma wird ein Compilerfehler CS8304 ausgelöst, der eine Meldung mit der Compilerversion und der aktuell ausgewählten Sprachversion enthält. Weitere Informationen zu diesem Pragma finden Sie unter #error (C#-Referenz).
Bearbeiten der Projektdatei
Legen Sie die Sprachversion in Ihrer Projektdatei fest. Die Projektdatei ist die *.csproj Datei im Stammordner für Ihr Projekt. Wenn Sie beispielsweise expliziten Zugriff auf Vorschaufeatures wünschen, fügen Sie ein Element wie das folgende Beispiel hinzu:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Der Wert preview verwendet die neueste verfügbare C#-Sprachversion, die ihr Compiler unterstützt.
Konfigurieren mehrerer Projekte
Um mehrere C#-Projekte zu konfigurieren, erstellen Sie eine Datei "Directory.Build.props" in der Regel in Ihrem Lösungsverzeichnis, die das <LangVersion> Element enthält. Fügen Sie der Datei Directory.Build.props die folgende Einstellung hinzu:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Builds in allen Unterverzeichnissen des Verzeichnisses, das diese Datei enthält, verwenden nun die C#-Vorschauversion. Weitere Informationen finden Sie unter Anpassen des Builds.
Hinweis
Die Versionen für C# und Visual Basic unterscheiden sich. Verwenden Sie die Datei "Directory.Build.Props " nicht für einen Ordner, in dem Unterverzeichnisse Projekte für beide Sprachen enthalten. Die Versionen stimmen nicht überein.
Referenz zur C#-Sprachversion
Wichtig
Die Verwendung einer C#-Sprachversion höher als die version, die Ihrem Ziel-TFM zugeordnet ist, wird nicht unterstützt.
In der folgenden Tabelle sind alle aktuellen C#-Sprachversionen enthalten. Ältere Compiler verstehen möglicherweise nicht jeden Wert. Wenn Sie das neueste .NET SDK installieren, erhalten Sie Zugriff auf alle aufgelisteten Syntaxversionen.
| Wert | Bedeutung |
|---|---|
preview |
Der Compiler akzeptiert jede gültige Sprachsyntax der letzten Vorschauversion. |
latest |
Der Compiler akzeptiert die Syntax der neuesten veröffentlichte Version des Compilers (einschließlich Nebenversionen). |
latestMajoroder default |
Der Compiler akzeptiert die Syntax der neuesten veröffentlichte Hauptversion des Compilers. |
14.0 |
Der Compiler akzeptiert nur syntax, die in C# 14 oder niedriger enthalten ist. |
13.0 |
Der Compiler akzeptiert nur Syntax von C# 13 oder niedriger. |
12.0 |
Der Compiler akzeptiert nur Syntax von C# 12 oder niedriger. |
11.0 |
Der Compiler akzeptiert nur Syntax von C# 11 oder niedriger. |
10.0 |
Der Compiler akzeptiert nur Syntax, die in C# 10 oder niedriger enthalten ist. |
9.0 |
Der Compiler akzeptiert nur Syntax, die in C# 9 oder niedriger enthalten ist. |
8.0 |
Der Compiler akzeptiert nur Syntax, die in C# 8.0 oder niedriger enthalten ist. |
7.3 |
Der Compiler akzeptiert nur Syntax, die in C# 7.3 oder früher enthalten ist. |
7.2 |
Der Compiler akzeptiert nur Syntax, die in C# 7.2 oder früher enthalten ist. |
7.1 |
Der Compiler akzeptiert nur Syntax, die in C# 7.1 oder früher enthalten ist. |
7 |
Der Compiler akzeptiert nur Syntax, die in C# 7.0 oder früher enthalten ist. |
6 |
Der Compiler akzeptiert nur Syntax, die in C# 6.0 oder früher enthalten ist. |
5 |
Der Compiler akzeptiert nur Syntax, die in C# 5.0 oder früher enthalten ist. |
4 |
Der Compiler akzeptiert nur Syntax, die in C# 4.0 oder früher enthalten ist. |
3 |
Der Compiler akzeptiert nur Syntax, die in C# 3.0 oder früher enthalten ist. |
ISO-2oder 2 |
Der Compiler akzeptiert nur Syntax, die in ISO/IEC 23270:2006 C# (2.0) enthalten ist. |
ISO-1oder 1 |
Der Compiler akzeptiert nur Syntax, die in ISO/IEC 23270:2003 C# (1.0/1.2) enthalten ist. |