C#-språkversion
Den senaste C#-kompilatorn avgör en standardspråkversion baserat på projektets målramverk eller ramverk. Visual Studio tillhandahåller inget användargränssnitt för att ändra värdet, men du kan ändra det genom att redigera csproj-filen . Valet av standard säkerställer att du använder den senaste språkversionen som är kompatibel med ditt målramverk. Du får tillgång till de senaste språkfunktionerna som är kompatibla med projektets mål. Det här standardvalet säkerställer också att du inte använder ett språk som kräver typer eller körningsbeteende som inte är tillgängligt i målramverket. Om du väljer en språkversion som är nyare än standardvärdet kan det vara svårt att diagnostisera kompilerings- och körningsfel.
C# 13 stöds endast i .NET 9- och senare versioner. C# 12 stöds endast i .NET 8- och senare versioner. C# 11 stöds endast i .NET 7- och senare versioner.
Se kompatibilitetssidan för Visual Studio-plattformen för mer information om vilka .NET-versioner som stöds av versioner av Visual Studio. Kontrollera monosidan för C# för Monokompatibilitet med C#-versioner.
Defaults
Kompilatorn fastställer ett standardvärde baserat på dessa regler:
Mål | Version | Standard för C#-språkversion |
---|---|---|
.NET | 9.x | C# 13 |
.NET | 8.x | C# 12 |
.NET | 7.x | C# 11 |
.NET | 6.x | C# 10 |
.NET | 5.x | C# 9.0 |
.NET Core | 3.x | C# 8.0 |
.NET Core | 2.x | C# 7.3 |
.NET Standard | 2.1 | C# 8.0 |
.NET Standard | 2.0 | C# 7.3 |
.NET Standard | 1.x | C# 7.3 |
.NET Framework | alla | C# 7.3 |
Om ditt projekt riktar in sig på ett preview
ramverk som har en motsvarande version av förhandsversionen är den språkversion som används förhandsgranskningsspråket. Du använder de senaste funktionerna med den förhandsversionen i alla miljöer, utan att påverka projekt som är inriktade på en utgiven .NET Core-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). |
Kommentar
Att ange LangVersion med default
värdet skiljer sig från att utelämna alternativet LangVersion . När du anger default
används den senaste versionen av språket som kompilatorn stöder, utan att ta hänsyn till målramverket. Om du till exempel skapar ett projekt som riktar sig mot .NET 6 från den aktuella versionen av Visual Studio 2022 används C# 10 om LangVersion inte har angetts, men använder C# 12 om LangVersion är inställt på default
.