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.
De standaardinstelling overschrijven
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 optie LangVersion-compiler.
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.
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
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
.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort: Gedurende 2024 worden GitHub Issues uitgefaseerd als het feedbackmechanisme voor inhoud. Dit wordt vervangen door een nieuw feedbacksysteem. Ga voor meer informatie naar:Feedback verzenden en bekijken voor