C#-taalversiebeheer
De nieuwste C#-compiler bepaalt een standaardtaalversie op basis van het doelframework of frameworks van uw project. Visual Studio biedt geen gebruikersinterface om de waarde te wijzigen, maar u kunt deze wijzigen door het csproj-bestand te bewerken. De standaardkeuze zorgt ervoor dat u de nieuwste taalversie gebruikt die compatibel is met uw doelframework. U profiteert van toegang tot de nieuwste taalfuncties die compatibel zijn met het doel van uw project. Deze standaardkeuze zorgt er ook voor dat u geen taal gebruikt waarvoor typen of runtimegedrag niet beschikbaar zijn in uw doelframework. Als u een nieuwere taalversie kiest dan de standaardversie, kan het moeilijk zijn om compileer- en runtimefouten vast te stellen.
C# 13 wordt alleen ondersteund op .NET 9 en nieuwere versies. C# 12 wordt alleen ondersteund op .NET 8 en nieuwere versies. C# 11 wordt alleen ondersteund in .NET 7 en nieuwere versies.
Controleer de compatibiliteitspagina van het Visual Studio-platform voor meer informatie over welke .NET-versies worden ondersteund door versies van Visual Studio. Controleer de monopagina voor C# voor monocompatibiliteit met C#-versies.
Defaults
De compiler bepaalt een standaardwaarde op basis van deze regels:
Doel | Versie | Standaardtaalversie van C# |
---|---|---|
.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 | Alles | C# 7.3 |
Als uw project is gericht op een preview
framework met een bijbehorende preview-taalversie, is de gebruikte taalversie de preview-taalversie. U gebruikt de nieuwste functies met die preview in elke omgeving, zonder dat dit van invloed is op projecten die gericht zijn op een uitgebrachte .NET Core-versie.
Naslaginformatie over de C#-taalversie
In de volgende tabel ziet u alle huidige C#-taalversies. Oudere compilers begrijpen mogelijk niet elke waarde. Als u de nieuwste .NET SDK installeert, hebt u toegang tot alles wat wordt vermeld.
Weergegeven als | Betekenis |
---|---|
preview |
De compiler accepteert alle geldige taalsyntaxis uit de nieuwste preview-versie. |
latest |
De compiler accepteert syntaxis van de meest recente uitgebrachte versie van de compiler (inclusief secundaire versie). |
latestMajor of default |
De compiler accepteert syntaxis van de meest recente primaire versie van de compiler. |
13.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 13 of lager. |
12.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 12 of lager. |
11.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 11 of lager. |
10.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 10 of lager. |
9.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 9 of lager. |
8.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 8.0 of lager. |
7.3 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 7.3 of lager. |
7.2 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 7.2 of lager. |
7.1 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 7.1 of lager. |
7 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 7.0 of lager. |
6 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 6.0 of lager. |
5 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 5.0 of lager. |
4 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 4.0 of lager. |
3 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 3.0 of lager. |
ISO-2 of 2 |
De compiler accepteert alleen syntaxis die is opgenomen in ISO/IEC 23270:2006 C# (2.0). |
ISO-1 of 1 |
De compiler accepteert alleen syntaxis die is opgenomen in ISO/IEC 23270:2003 C# (1.0/1.2). |
Notitie
Het opgeven van LangVersion met de default
waarde verschilt van het weglaten van de optie LangVersion . default
Opgeven maakt gebruik van de nieuwste versie van de taal die de compiler ondersteunt, zonder rekening te houden met het doelframework. Als u bijvoorbeeld een project bouwt dat is gericht op .NET 6 van de huidige versie van Visual Studio 2022, wordt C# 10 gebruikt als LangVersion niet is opgegeven, maar C# 12 gebruikt als LangVersion is ingesteld op default
.