Dela via


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:

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).