Konfigurera C#-språkversion
Informationen i den här artikeln gäller för .NET 5 och senare. Information om UWP-projekt hittar du i artikeln Välja en UWP-version.
I Visual Studio inaktiveras alternativet att ändra språkversionen via användargränssnittet eftersom standardversionen är anpassad till projektets målramverk (TFM
). Den här standardkonfigurationen garanterar kompatibilitet mellan språkfunktioner och körningsstöd. Om du vill ändra språkversionen i Visual Studio ändrar du projektets målramverk.
Om du till exempel ändrar mål TFM
(till exempel 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 i den här artikeln för att åsidosätta standardinställningarna direkt i projektfilen.
Varning
Det rekommenderas inte att ange elementet LangVersion
till latest
. Inställningen latest
innebär att den installerade kompilatorn använder sin senaste version. Värdet för latest
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örtidsfunktioner eller biblioteksfunktioner som inte ingår i det aktuella SDK.
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.
Tips
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 för närvarande använder, lägger du #error version
(skiftlägeskänslig) i koden. Den här pragman gör kompilatorrapporten till ett kompilatorfel, CS8304, med ett meddelande som innehåller kompilatorversionen och den aktuella valda språkversionen. Mer information om den här pragma finns i #error (C#-referens).
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 i följande exempel:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Värdet preview
använder den senaste tillgängliga C#-språkversionen för förhandsversionen som kompilatorn stöder.
Konfigurera flera projekt
Om du vill konfigurera flera C#-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.
Anmärkning
Versionerna för C# och VB är olika. Använd inte filen Directory.Build.Props för en mapp där underkataloger innehåller projekt för båda språken. Versionerna matchar inte.
Referens för C#-språkversion
Viktig
Det går inte att använda en C#-språkversion som är nyare än den version som är associerad med mål-TFM.
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 utgivna versionen av kompilatorn, inklusive den senaste delversionen. |
latestMajor eller default |
Kompilatorn accepterar syntax från den senaste versionen av huvudversionen av kompilatorn. |
14.0 |
Kompilatorn accepterar endast syntax som ingår i C# 14 eller lägre. |
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). |