Delen via


C#-taalversie configureren

Waarschuwing

Het instellen van het LangVersion element latest wordt afgeraden. De latest instelling betekent dat de geïnstalleerde compiler de nieuwste versie gebruikt. Dat kan veranderen van machine naar machine, waardoor builds onbetrouwbaar zijn. Daarnaast worden taalfuncties ingeschakeld waarvoor runtime- of bibliotheekfuncties mogelijk niet zijn opgenomen in de huidige SDK.

Als u uw C#-versie expliciet moet opgeven, kunt u dit op verschillende manieren doen:

Tip

U kunt de taalversie in Visual Studio zien op de pagina met projecteigenschappen. Op het tabblad Opbouwen wordt in het deelvenster Geavanceerd de geselecteerde versie weergegeven.

Als u wilt weten welke taalversie u momenteel gebruikt, plaatst #error version u (hoofdlettergevoelig) in uw code. Hierdoor meldt de compiler een compilerfout, CS8304, met een bericht met de gebruikte compilerversie en de huidige geselecteerde taalversie. Zie #error (C#-verwijzing) voor meer informatie.

Waarom u geen andere C#-versie kunt selecteren in Visual Studio

In Visual Studio is de optie voor het wijzigen van de taalversie via de gebruikersinterface mogelijk uitgeschakeld omdat de standaardversie is afgestemd op het doelframework van het project (TFM). Deze standaardconfiguratie zorgt voor compatibiliteit tussen taalfuncties en runtime-ondersteuning.

Als u bijvoorbeeld de doel-TFM wijzigt (bijvoorbeeld van .NET 6 naar .NET 9) wordt de taalversie dienovereenkomstig bijgewerkt, van C# 10 naar C# 13. Deze aanpak voorkomt problemen met runtimecompatibiliteit en minimaliseert onverwachte buildfouten vanwege niet-ondersteunde taalfuncties.

Als u een specifieke taalversie nodig hebt die verschilt van de taal die automatisch is geselecteerd, raadpleegt u de onderstaande methoden om de standaardinstellingen rechtstreeks in het projectbestand te overschrijven.

Het projectbestand bewerken

U kunt de taalversie instellen in uw projectbestand. Als u bijvoorbeeld expliciet toegang wilt tot preview-functies, voegt u een element als volgt toe:

<PropertyGroup>
   <LangVersion>preview</LangVersion>
</PropertyGroup>

De waarde preview maakt gebruik van de meest recente preview-taalversie van C# die door uw compiler wordt ondersteund.

Meerdere projecten configureren

Als u meerdere projecten wilt configureren, kunt u een bestand Directory.Build.props maken, meestal in uw oplossingsmap , dat het <LangVersion> element bevat. Voeg de volgende instelling toe aan het bestand Directory.Build.props :

<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
 </PropertyGroup>
</Project>

Builds in alle submappen van de map die dat bestand bevat, gebruiken nu de preview C#-versie. Zie Uw build aanpassen voor meer informatie.

Naslaginformatie over de C#-taalversie

Belangrijk

Het gebruik van een C#-taalversie die hoger is dan de versie die aan uw doel TFM is gekoppeld, wordt niet ondersteund.

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