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:
- 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 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). |