Konfigurieren der C#-Sprachversion
Warnung
Es wird davon abgeraten, das LangVersion
-Element auf latest
festzulegen. Die Einstellung latest
bedeutet, dass der installierte Compiler seine neueste Version verwendet. Sie kann von Computer zu Computer unterschiedlich sein, was zu unzuverlässigen Builds führt. Außerdem werden durch diese Einstellung Sprachfeatures aktiviert, 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. Dadurch meldet der Compiler einen Compilerfehler (CS8304) mit einer Meldung, die die verwendete Compilerversion und die zurzeit ausgewählte Sprachversion enthält. Weitere Informationen finden Sie unter #error (C#-Referenz).
Warum Sie in Visual Studio keine andere C#-Version auswählen können
In Visual Studio kann die Option zum Ändern der Sprachversion über die Benutzeroberfläche deaktiviert werden, da die Standardversion am ZielframeworkTFM
des Projekts () ausgerichtet ist. Diese Standardkonfiguration stellt die Kompatibilität zwischen Sprachfeatures und Laufzeitunterstützung sicher.
Wenn Sie beispielsweise das Ziel TFM
ändern (z. B. von .NET 6 auf .NET 9), wird die Sprachversion entsprechend aktualisiert, von C# 10 auf C# 13. Dieser Ansatz verhindert Probleme mit der Laufzeitkompatibilität und minimiert unerwartete Buildfehler aufgrund nicht unterstützter Sprachfeatures.
Wenn Sie eine bestimmte Sprachversion benötigen, die sich von der automatisch ausgewählten unterscheidet, lesen Sie die folgenden Methoden, um die Standardeinstellungen direkt in der Projektdatei außer Kraft zu setzen.
Bearbeiten der Projektdatei
Sie können die Sprachversion in der Projektdatei festlegen. Wenn Sie beispielsweise expliziten Zugriff auf Previewfunktionen wünschen, fügen Sie ein Element wie folgt hinzu:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Der Wert preview
verwendet die neueste verfügbare Vorschauversion der Sprache C#, die Ihr Compiler unterstützt.
Konfigurieren mehrerer Projekte
Zum Konfigurieren mehrerer Projekte können Sie eine Datei vom Typ Directory.Build.props erstellen, die sich normalerweise in Ihrem Projektmappenverzeichnis befindet und das Element <LangVersion>
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.
Referenz zur C#-Sprachversion
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). |
latestMajor oder default |
Der Compiler akzeptiert die Syntax der neuesten veröffentlichte Hauptversion des Compilers. |
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-2 oder 2 |
Der Compiler akzeptiert nur Syntax, die in ISO/IEC 23270:2006 C# (2.0) enthalten ist. |
ISO-1 oder 1 |
Der Compiler akzeptiert nur Syntax, die in ISO/IEC 23270:2003 C# (1.0/1.2) enthalten ist. |