Share via


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# 12 wordt alleen ondersteund op .NET 8 en nieuwere versies. C# 11 wordt alleen ondersteund in .NET 7 en nieuwere versies. C# 10 wordt alleen ondersteund op .NET 6 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 Visual Studio voor Mac-platformcompatibiliteitspagina voor meer informatie over welke .NET-versies worden ondersteund door versies van Visual Studio voor Mac. 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 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.

Belangrijk

De nieuwe projectsjabloon voor Visual Studio 2017 heeft een <LangVersion>latest</LangVersion> vermelding toegevoegd aan nieuwe projectbestanden. Als u het doelframework voor deze projecten bijwerkt, kan de <LangVersion> instelling de standaardwaarde voor het nieuwe doelframework overschrijven. Zorg ervoor dat u het <LangVersion>latest</LangVersion> uit uw projectbestand verwijdert om ervoor te zorgen dat uw project gebruikmaakt van de aanbevolen compilerversie voor uw doelframework. U kunt het doelframework bijwerken voor toegang tot nieuwere taalfuncties.

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