Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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. Projektfilen är *.csproj filen i rotmappen för projektet. 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. |
latestMajoreller 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-2eller 2 |
Kompilatorn accepterar endast syntax som ingår i ISO/IEC 23270:2006 C# (2.0). |
ISO-1eller 1 |
Kompilatorn accepterar endast syntax som ingår i ISO/IEC 23270:2003 C# (1.0/1.2). |