Megosztás a következőn keresztül:


C#-nyelv verziószámozása

A legújabb C#-fordító a projekt cél-keretrendszere vagy keretrendszerei alapján határozza meg az alapértelmezett nyelvi verziót. A Visual Studio nem biztosít felhasználói felületet az érték módosításához, de a csproj fájl szerkesztésével módosíthatja. Az alapértelmezett beállítás biztosítja, hogy a cél-keretrendszerrel kompatibilis legújabb nyelvi verziót használja. A projekt céljával kompatibilis legújabb nyelvi funkciókhoz férhet hozzá. Ez az alapértelmezett beállítás azt is biztosítja, hogy ne használjon olyan nyelvet, amely olyan típusokat vagy futtatókörnyezeti viselkedést igényel, amelyek nem érhetők el a cél-keretrendszerben. Ha az alapértelmezettnél újabb nyelvi verziót választ, nehéz diagnosztizálni a fordítási és futásidejű hibákat.

A C# 13 csak .NET 9 és újabb verziók esetén támogatott. A C# 12 csak .NET 8 és újabb verziók esetén támogatott. A C# 11 csak .NET 7 és újabb verziók esetén támogatott.

A Visual Studio platformkompatibilitási oldalán talál részleteket, amelyeken a Visual Studio verziói támogatják a .NET-verziókat. Ellenőrizze a Mono oldalt, hogy a C# kompatibilis-e a C# -verziókkal.

Defaults

A fordító az alábbi szabályok alapján határozza meg az alapértelmezett értéket:

Cél Verzió A C#-nyelv alapértelmezett verziója
.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-keretrendszer mind C# 7.3

Ha a projekt egy megfelelő előzetes verziójú keretrendszert preview céloz meg, a használt nyelvi verzió az előzetes verzió. A legújabb funkciókat bármilyen környezetben használhatja az előzetes verzióval, anélkül, hogy befolyásolná a kiadott .NET Core-verziót megcélzó projekteket.

C# nyelvi verzióra vonatkozó referencia

Az alábbi táblázat az összes aktuális C#-nyelvi verziót tartalmazza. Előfordulhat, hogy a régebbi fordítók nem értenek minden értéket. Ha a legújabb .NET SDK-t telepíti, a felsoroltakhoz minden hozzáférése van.

Érték Értelmezés
preview A fordító a legújabb előzetes verzió összes érvényes nyelvszintaxisát elfogadja.
latest A fordító elfogadja a fordító legújabb kiadású verziójának szintaxisát (beleértve az alverziót is).
latestMajor
vagy default
A fordító elfogadja a fordító legújabb főverziójának szintaxisát.
13.0 A fordító csak a C# 13 vagy annál alacsonyabb szintaxist fogadja el.
12.0 A fordító csak a C# 12 vagy annál alacsonyabb szintaxist fogadja el.
11.0 A fordító csak a C# 11 vagy annál alacsonyabb szintaxist fogadja el.
10.0 A fordító csak a C# 10 vagy annál alacsonyabb szintaxist fogadja el.
9.0 A fordító csak a C# 9 vagy annál alacsonyabb szintaxist fogadja el.
8.0 A fordító csak a C# 8.0 vagy annál alacsonyabb szintaxist fogadja el.
7.3 A fordító csak a C# 7.3 vagy annál alacsonyabb szintaxist fogadja el.
7.2 A fordító csak a C# 7.2-ben vagy annál alacsonyabb szintaxist fogadja el.
7.1 A fordító csak a C# 7.1 vagy annál alacsonyabb szintaxist fogadja el.
7 A fordító csak a C# 7.0-s vagy újabb verziójában szereplő szintaxist fogadja el.
6 A fordító csak a C# 6.0 vagy annál alacsonyabb szintaxist fogadja el.
5 A fordító csak a C# 5.0-s vagy újabb verziójában szereplő szintaxist fogadja el.
4 A fordító csak a C# 4.0-s vagy újabb verziójában szereplő szintaxist fogadja el.
3 A fordító csak a C# 3.0-s vagy újabb verziójában szereplő szintaxist fogadja el.
ISO-2
vagy 2
A fordító csak az ISO/IEC 23270:2006 C# (2.0) szabványban foglalt szintaxist fogadja el.
ISO-1
vagy 1
A fordító csak az ISO/IEC 23270:2003 C# (1.0/1.2) szabványban foglalt szintaxist fogadja el.

Feljegyzés

A LangVersion értékének default megadása eltér a LangVersion beállítás kihagyásától. A beállítás default a fordító által támogatott nyelv legújabb verzióját használja, a cél-keretrendszer figyelembe vétele nélkül. Ha például a Visual Studio 2022 jelenlegi verziójából a .NET 6-ot célozza meg, akkor a C# 10-et használja, ha a LangVersion nincs megadva, de a C# 12-t használja, ha a LangVersion értéke default.