Sdílet prostřednictvím


Konfigurace jazykové verze jazyka C#

Upozorňující

LangVersion Nastavení prvku na latest hodnotu se nedoporučuje. Nastavení latest znamená, že nainstalovaný kompilátor používá nejnovější verzi. To se může změnit z počítače na počítač a vytvářet nespolehlivé buildy. Kromě toho umožňuje funkce jazyka, které mohou vyžadovat funkce modulu runtime nebo knihovny, které nejsou součástí aktuální sady SDK.

Pokud musíte explicitně zadat svoji verzi jazyka C#, můžete to udělat několika způsoby:

Tip

Jazykovou verzi můžete zobrazit v sadě Visual Studio na stránce vlastností projektu. Na kartě Sestavení se v podokně Upřesnit zobrazí vybraná verze.

Pokud chcete zjistit, jakou jazykovou verzi aktuálně používáte, vložte #error version do kódu malá a velká písmena. Kompilátor tak oznámí chybu kompilátoru CS8304 se zprávou obsahující používanou verzi kompilátoru a aktuální vybranou jazykovou verzi. Další informace najdete v tématu #error (Referenční dokumentace jazyka C#).

Proč v sadě Visual Studio nemůžete vybrat jinou verzi jazyka C#

V sadě Visual Studio může být možnost změnit jazykovou verzi prostřednictvím uživatelského rozhraní zakázaná, protože výchozí verze je v souladu s cílovou architekturou projektu (TFM). Tato výchozí konfigurace zajišťuje kompatibilitu mezi funkcemi jazyka a podporou modulu runtime.

Například změna cílového TFM (například z .NET 6 na .NET 9) odpovídajícím způsobem aktualizuje jazykovou verzi z C# 10 na C# 13. Tento přístup zabraňuje problémům s kompatibilitou modulu runtime a minimalizuje neočekávané chyby sestavení kvůli nepodporovaným jazykovým funkcím.

Pokud potřebujete konkrétní jazykovou verzi, která se liší od automaticky vybrané verze, přečtěte si níže uvedené metody a přepište výchozí nastavení přímo v souboru projektu.

Úprava souboru projektu

Jazyková verze můžete nastavit v souboru projektu. Pokud například explicitně chcete získat přístup k funkcím ve verzi Preview, přidejte element podobný tomuto:

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

Hodnota preview používá nejnovější dostupnou jazykovou verzi jazyka C#, kterou kompilátor podporuje.

Konfigurace více projektů

Pokud chcete nakonfigurovat více projektů, můžete vytvořit soubor Directory.Build.props , obvykle v adresáři řešení, který obsahuje <LangVersion> prvek. Do souboru Directory.Build.props přidejte následující nastavení:

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

Sestavení ve všech podadresářích adresáře obsahujícího tento soubor teď používají verzi Preview jazyka C#. Další informace najdete v tématu Přizpůsobení sestavení.

Referenční dokumentace jazyka C#

Důležitý

Použití novější verze jazyka C#, než je verze přidružená k cílové sadě TFM, není podporována.

V následující tabulce jsou uvedeny všechny aktuální jazykové verze jazyka C#. Starší kompilátory nemusí rozumět každé hodnotě. Pokud nainstalujete nejnovější sadu .NET SDK, máte přístup ke všemu uvedenému.

Hodnota Význam
preview Kompilátor přijímá veškerou platnou syntaxi jazyka z nejnovější verze Preview.
latest Kompilátor přijímá syntaxi z nejnovější vydané verze kompilátoru (včetně podverze).
latestMajor
nebo default
Kompilátor přijímá syntaxi z nejnovější vydané hlavní verze kompilátoru.
13.0 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 13 nebo nižší.
12.0 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 12 nebo nižší.
11.0 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 11 nebo nižší.
10.0 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 10 nebo nižší.
9.0 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 9 nebo nižší.
8.0 Kompilátor přijímá pouze syntaxi, která je součástí C# 8.0 nebo nižší.
7.3 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 7.3 nebo nižší.
7.2 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 7.2 nebo nižší.
7.1 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 7.1 nebo nižší.
7 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 7.0 nebo nižší.
6 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 6.0 nebo nižší.
5 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 5.0 nebo nižší.
4 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 4.0 nebo nižší.
3 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 3.0 nebo nižší.
ISO-2
nebo 2
Kompilátor přijímá pouze syntaxi, která je součástí ISO/IEC 23270:2006 C# (2.0).
ISO-1
nebo 1
Kompilátor přijímá pouze syntaxi, která je součástí ISO/IEC 23270:2003 C# (1.0/1.2).