Sdílet prostřednictvím


Konfigurace verze jazyka C#

Informace v tomto článku platí pro .NET 5 a vyšší. V případě projektů UWP vizte tyto informace v článku o Volba verze UWP.

V sadě Visual Studio je 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. Pokud chcete změnit jazykovou verzi v sadě Visual Studio, změňte cílovou architekturu projektu.

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, projděte si metody v tomto článku a přepište výchozí nastavení přímo v souboru projektu.

Varování

LangVersion Nastavení prvku na latest hodnotu se nedoporučuje. Nastavení latest znamená, že nainstalovaný kompilátor používá nejnovější verzi. Hodnota latest se může změnit z počítače na počítač a vytvářet tak nespolehlivé buildy. Kromě toho umožňuje funkce jazyka, které můžou 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 s ohledem na velká a malá písmena. Tato direktiva pragma způsobí, že kompilátor oznámí chybu kompilátoru CS8304 se zprávou obsahující verzi kompilátoru a aktuální vybranou jazykovou verzi. Další informace o této direktivě pragma naleznete v #error (Referenční dokumentace jazyka C#).

Ú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 prvek podobný tomuto příkladu:

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

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

Konfigurace více projektů

Pokud chcete nakonfigurovat více projektů C#, můžete vytvořit soubor Directory.Build.props, obvykle v adresáři řešení, který obsahuje prvek <LangVersion>. 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 části Přizpůsobení sestavení.

Poznámka:

Verze pro C# a VB se liší. Nepoužívejte soubor Directory.Build.Props složky, ve které podadresáře obsahují projekty pro oba jazyky. Verze se neshodují.

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ě nejnovějších podverzí.
latestMajor
nebo default
Kompilátor přijímá syntaxi z nejnovější vydané hlavní verze kompilátoru.
14.0 Kompilátor přijímá pouze syntaxi, která je součástí jazyka C# 14 nebo nižší.
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).