Správa verzí jazyka C#
Nejnovější kompilátor jazyka C# určuje výchozí jazykovou verzi na základě cílové architektury nebo architektur projektu. Visual Studio neposkytuje uživatelské rozhraní pro změnu hodnoty, ale můžete ji změnit úpravou souboru csproj . Volba výchozího nastavení zajistí, že použijete nejnovější jazykovou verzi kompatibilní s cílovou architekturou. Získáte přístup k nejnovějším jazykovým funkcím kompatibilním s cílem projektu. Tato výchozí volba také zajišťuje, že v cílovém rozhraní nepoužíváte jazyk, který vyžaduje typy nebo chování modulu runtime. Volba novější verze jazyka, než je výchozí, může způsobit těžkou diagnostiku chyb při kompilaci a za běhu.
C# 13 je podporován pouze v .NET 9 a novějších verzích. C# 12 se podporuje jenom v .NET 8 a novějších verzích. C# 11 je podporován pouze v .NET 7 a novějších verzích.
Podrobnosti o tom, které verze .NET podporují verze sady Visual Studio, najdete na stránce kompatibility platformy Visual Studio. Na stránce Mono zkontrolujte kompatibilitu jazyka C# s verzemi jazyka C#.
Defaults
Kompilátor určuje výchozí hodnotu na základě těchto pravidel:
Cíl | Verze | Výchozí verze jazyka C# |
---|---|---|
.NET | 9.x | C# 13 |
.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 Framework | vše | C# 7.3 |
Pokud váš projekt cílí na architekturu preview
, která má odpovídající jazykovou verzi Preview, je použitá jazyková verze preview. V libovolném prostředí používáte nejnovější funkce, které jsou ve verzi Preview, aniž by to mělo vliv na projekty, které cílí na vydanou verzi .NET Core.
Referenční dokumentace jazyka C#
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). |
Poznámka:
Zadání jazyka default
LangVersion s hodnotou se liší od vynechání možnosti LangVersion. Určení default
používá nejnovější verzi jazyka, který kompilátor podporuje, bez zohlednění cílové architektury. Například sestavení projektu, který cílí na .NET 6 z aktuální verze sady Visual Studio 2022, používá jazyk C# 10, pokud není zadán Jazyk LangVersion , ale používá jazyk C# 12, pokud je jazyk LangVersion nastavený na default
.