Dela via


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:

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