Настройка версии языка C#
Если необходимо явно указать версию C#, это можно сделать несколькими способами:
- Вручную измените файл проекта.
- задание языковой версии для нескольких проектов в подкаталоге;
- Настройте параметр компилятора LangVersion.
Совет
Языковая версия в Visual Studio отображается на странице свойств проекта. На вкладке "Сборка" на панели "Дополнительно" отображается выбранная версия.
Чтобы узнать, какую версию языка вы используете в данный момент, поставьте #error version
(с учетом регистра) в коде. Это позволяет компилятору вывести ошибку CS8304 с сообщением, содержащим сведения об используемой версии компилятора и текущей выбранной версии языка. Дополнительные сведения см. в статье #error (справочник по C#).
Изменение файла проекта
Версию языка можно задать в файле проекта. Например, если доступ к предварительной версии функций должен быть задан явным образом, можно добавить следующий элемент:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Значение preview
использует последнюю предварительную версию языка C#, которую поддерживает компилятор.
Настройка нескольких проектов
Чтобы настроить несколько проектов, можно создать файл Directory.Build.props , как правило, в каталоге решения, который содержит <LangVersion>
элемент. Добавьте следующий параметр в файл Directory.Build.props :
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Сборки во всех подкаталогах каталога, содержащего этот файл, теперь используют предварительную версию C#. Дополнительные сведения см. в статье Настройка сборки.
Справочник по версиям языка C#
В следующей таблице показаны все текущие версии языка C#. Старые компиляторы могут не понимать каждое значение. Если установить последний пакет SDK для .NET, у вас есть доступ ко всем перечисленным.
Значение | Значение |
---|---|
preview |
Компилятор допускает использование любого допустимого синтаксиса языка из последней предварительной версии. |
latest |
Компилятор принимает синтаксис из последней выпущенной версии компилятора (включая дополнительный номер версии). |
latestMajor или default |
Компилятор принимает синтаксис из последней основной версии компилятора. |
13.0 |
Компилятор принимает только синтаксис, включенный в C# 13 или более поздней версии. |
12.0 |
Компилятор принимает только синтаксис, включенный в C# 12 или ниже. |
11.0 |
Компилятор принимает только синтаксис, включенный в C# 11 или ниже. |
10.0 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 10 или более ранних версий. |
9.0 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 9 или более ранних версий. |
8.0 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 8.0 или более ранней версии. |
7.3 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.3 или более ранней версии. |
7.2 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.2 или более ранней версии. |
7.1 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.1 или более ранней версии. |
7 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.0 или более ранней версии. |
6 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 6.0 или более ранней версии. |
5 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 5.0 или более ранней версии. |
4 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 4.0 или более ранней версии. |
3 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 3.0 или более ранней версии. |
ISO-2 или 2 |
Компилятор принимает только синтаксис, включенный в спецификацию ISO/IEC 23270:2006 C# (2.0). |
ISO-1 или 1 |
Компилятор принимает только синтаксис, включенный в спецификацию ISO/IEC 23270:2003 C# (1.0/1.2). |