C#-taalversie configureren
De informatie in dit artikel is van toepassing op .NET 5 en hoger. Voor UWP-projecten, zie deze informatie in het artikel over Een UWP-versie kiezen.
In Visual Studio is de optie om de taalversie via de gebruikersinterface te wijzigen 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 de taalversie in Visual Studio wilt wijzigen, wijzigt u het doelframework van het project.
Als u bijvoorbeeld de doel-TFM
wijzigt (bijvoorbeeld van .NET 6 in .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 methoden in dit artikel om de standaardinstellingen rechtstreeks in het projectbestand te overschrijven.
Waarschuwing
Het wordt afgeraden om het LangVersion
-element in te stellen op latest
. De latest
instelling betekent dat de geïnstalleerde compiler de nieuwste versie gebruikt. De waarde van latest
kan veranderen van machine naar machine, waardoor builds onbetrouwbaar zijn. Daarnaast worden taalfuncties ingeschakeld waarvoor runtime- of bibliotheekfuncties zijn vereist die niet zijn opgenomen in de huidige SDK.
Als u uw C#-versie expliciet moet opgeven, kunt u dit op verschillende manieren doen:
- Bewerk het projectbestand handmatig.
- Stel de taalversie in voor meerdere projecten in een submap.
- Configureer de LangVersion-compileroptie.
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 u #error version
(het is hoofdlettergevoelig) in uw code. Deze pragma zorgt ervoor dat de compiler een fout, CS8304, rapporteert met een melding die de compilerversie en de momenteel geselecteerde taalversie bevat. Voor meer informatie over deze pragma, zie #error (C#-verwijzing).
Het projectbestand bewerken
U kunt de taalversie instellen in uw projectbestand. Als u bijvoorbeeld expliciet toegang wilt tot preview-functies, voegt u een element toe zoals in het volgende voorbeeld:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
De waarde preview
de meest recente beschikbare C#-taalversie gebruikt die uw compiler ondersteunt.
Meerdere projecten configureren
Als u meerdere C#-projecten wilt configureren, kunt u een Directory.Build.props-bestand 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.
Notitie
De versies voor C# en VB verschillen. Gebruik het bestand Directory.Build.Props niet voor een map waarin submappen projecten voor beide talen bevatten. De versies komen niet overeen.
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.
Waarde | 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 kleine versie). |
latestMajor of default |
De compiler accepteert syntaxis van de meest recente primaire versie van de compiler. |
14.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 14 of lager. |
13.0 |
De compiler accepteert alleen syntaxis die valt onder 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 ouder. |
10.0 |
De compiler aanvaardt alleen syntaxis die is opgenomen in C# 10 of lager dan. |
9.0 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 9 of lager. |
8.0 |
De compiler accepteert alleen de syntaxis die tot en met C# 8.0 behoort. |
7.3 |
De compiler accepteert alleen syntaxis die is opgenomen in C# 7.3 of lager. |
7.2 |
De compiler accepteert alleen taalstructuur 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 deel uitmaakt van C# 7.0 of eerder. |
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). |