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:
- Ručně upravte soubor projektu.
- Nastavte jazykovou verzi pro více projektů v podadresáři.
- Nakonfigurujte možnost kompilátoru LangVersion.
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). |