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# 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 C# 10 csak .NET 6 é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. A Mac Visual Studio platformkompatibilitási oldalán talál részleteket, amelyeken a Mac 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 | 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.
Fontos
A Visual Studio 2017 új projektsablonja hozzáadott egy bejegyzést <LangVersion>latest</LangVersion>
az új projektfájlokhoz. Ha frissíti ezeknek a projekteknek a cél keretrendszerét, a <LangVersion>
beállítás felülírhatja az új cél keretrendszer alapértelmezett beállításait. Mindenképpen távolítsa el a <LangVersion>latest</LangVersion>
projektfájlból, hogy a projekt a cél-keretrendszerhez ajánlott fordítóverziót használja. A cél keretrendszert frissítheti az újabb nyelvi funkciók eléréséhez.
Az alapértelmezett felülbírálás
Ha explicit módon kell megadnia a C#-verziót, ezt többféleképpen is megteheti:
- Manuálisan szerkessze a projektfájlt.
- Állítsa be a nyelvi verziót több projekthez egy alkönyvtárban.
- Konfigurálja a LangVersion fordítóbeállítást.
Tipp.
A nyelvi verzió a Visual Studióban a projekttulajdonságok oldalán látható. A Build lap Speciális paneljén megjelenik a kiválasztott verzió.
Ha tudni szeretné, hogy milyen nyelvi verziót használ, helyezze el #error version
(a kis- és nagybetűk megkülönböztetése) a kódban. Ez a fordítói jelentést cs8304-es fordítói hibává teszi, amely a használt fordítóverziót és az aktuálisan kiválasztott nyelvi verziót tartalmazza. További információt a #error (C#-referencia) című témakörben talál.
A projektfájl szerkesztése
A nyelvi verziót a projektfájlban állíthatja be. Ha például kifejezetten hozzá szeretne férni az előzetes verziójú funkciókhoz, adjon hozzá egy ehhez hasonló elemet:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Az érték preview
a fordító által támogatott legújabb előzetes verziójú C# nyelvi verziót használja.
Több projekt konfigurálása
Több projekt konfigurálásához létrehozhat egy Directory.Build.props fájlt, amely általában a megoldáskönyvtárban található, és tartalmazza az <LangVersion>
elemet. Adja hozzá a következő beállítást a Directory.Build.props fájlhoz :
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
A fájlt tartalmazó könyvtár összes alkönyvtárában már az előzetes verziójú C# verziót használja. További információ: A build testreszabása.
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. |
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
.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: