Konfigurera C#-språkversion
Varning
Det rekommenderas inte att ange elementet LangVersion
till latest
. Inställningen latest
innebär att den installerade kompilatorn använder sin senaste version. Det kan ändras från dator till dator, vilket gör byggen otillförlitliga. Dessutom möjliggör den språkfunktioner som kan kräva körnings- eller biblioteksfunktioner som inte ingår i den aktuella SDK:t.
Om du måste ange C#-versionen explicit kan du göra det på flera sätt:
- Redigera projektfilen manuellt.
- Ange språkversionen för flera projekt i en underkatalog.
- Konfigurera kompileringsalternativet LangVersion.
Dricks
Du kan se språkversionen i Visual Studio på sidan projektegenskaper. Under fliken Skapa visar fönstret Avancerat den valda versionen.
Om du vill veta vilken språkversion du använder för närvarande lägger #error version
du (skiftlägeskänslig) i koden. Detta gör kompilatorrapporten till ett kompilatorfel, CS8304, med ett meddelande som innehåller den kompilatorversion som används och den aktuella valda språkversionen. Mer information finns i #error (C#-referens ).
Därför kan du inte välja en annan C#-version i Visual Studio
I Visual Studio kan alternativet att ändra språkversionen via användargränssnittet inaktiveras eftersom standardversionen är anpassad till projektets målramverk (TFM
). Den här standardkonfigurationen garanterar kompatibilitet mellan språkfunktioner och körningsstöd.
Om du till exempel ändrar målet TFM
(t.ex. från .NET 6 till .NET 9) uppdateras språkversionen från C# 10 till C# 13. Den här metoden förhindrar problem med körningskompatibilitet och minimerar oväntade byggfel på grund av språkfunktioner som inte stöds.
Om du behöver en specifik språkversion som skiljer sig från den som väljs automatiskt läser du metoderna nedan för att åsidosätta standardinställningarna direkt i projektfilen.
Redigera projektfilen
Du kan ange språkversionen i projektfilen. Om du till exempel uttryckligen vill ha åtkomst till förhandsversionsfunktioner lägger du till ett element som det här:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Värdet preview
använder den senaste tillgängliga C#-språkversionen för förhandsversion som kompilatorn stöder.
Konfigurera flera projekt
Om du vill konfigurera flera projekt kan du skapa en Directory.Build.props-fil , vanligtvis i din lösningskatalog, som innehåller elementet <LangVersion>
. Lägg till följande inställning i filen Directory.Build.props :
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Versioner i alla underkataloger i katalogen som innehåller filen använder nu förhandsversionen av C#. Mer information finns i Anpassa din version.
Referens för C#-språkversion
I följande tabell visas alla aktuella C#-språkversioner. Äldre kompilatorer kanske inte förstår varje värde. Om du installerar den senaste .NET SDK:en har du åtkomst till allt som visas.
Värde | Innebörd |
---|---|
preview |
Kompilatorn accepterar alla giltiga språksyntaxer från den senaste förhandsversionen. |
latest |
Kompilatorn accepterar syntax från den senaste versionen av kompilatorn (inklusive delversion). |
latestMajor eller default |
Kompilatorn accepterar syntax från den senaste versionen av huvudversionen av kompilatorn. |
13.0 |
Kompilatorn accepterar endast syntax som ingår i C# 13 eller lägre. |
12.0 |
Kompilatorn accepterar endast syntax som ingår i C# 12 eller lägre. |
11.0 |
Kompilatorn accepterar endast syntax som ingår i C# 11 eller lägre. |
10.0 |
Kompilatorn accepterar endast syntax som ingår i C# 10 eller lägre. |
9.0 |
Kompilatorn accepterar endast syntax som ingår i C# 9 eller lägre. |
8.0 |
Kompilatorn accepterar endast syntax som ingår i C# 8.0 eller lägre. |
7.3 |
Kompilatorn accepterar endast syntax som ingår i C# 7.3 eller lägre. |
7.2 |
Kompilatorn accepterar endast syntax som ingår i C# 7.2 eller lägre. |
7.1 |
Kompilatorn accepterar endast syntax som ingår i C# 7.1 eller lägre. |
7 |
Kompilatorn accepterar endast syntax som ingår i C# 7.0 eller lägre. |
6 |
Kompilatorn accepterar endast syntax som ingår i C# 6.0 eller lägre. |
5 |
Kompilatorn accepterar endast syntax som ingår i C# 5.0 eller lägre. |
4 |
Kompilatorn accepterar endast syntax som ingår i C# 4.0 eller lägre. |
3 |
Kompilatorn accepterar endast syntax som ingår i C# 3.0 eller lägre. |
ISO-2 eller 2 |
Kompilatorn accepterar endast syntax som ingår i ISO/IEC 23270:2006 C# (2.0). |
ISO-1 eller 1 |
Kompilatorn accepterar endast syntax som ingår i ISO/IEC 23270:2003 C# (1.0/1.2). |