События
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сведения в этой статье относятся к .NET 5 и выше. Сведения о проектах UWP см. в статье о выборе версии UWP.
В Visual Studio параметр изменения языковой версии с помощью пользовательского интерфейса отключен, так как версия по умолчанию соответствует целевой платформе проекта (TFM
). Эта конфигурация по умолчанию обеспечивает совместимость между языковыми функциями и поддержкой среды выполнения. Чтобы изменить версию языка в Visual Studio, измените целевую платформу проекта.
Например, изменение целевого объекта TFM
(например, с .NET 6 на .NET 9) обновляет версию языка соответствующим образом с C# 10 до C# 13. Этот подход предотвращает проблемы совместимости среды выполнения и сводит к минимуму непредвиденные ошибки сборки из-за неподдерживаемых языковых функций.
Если вам нужна определенная языковая версия, которая отличается от выбранной автоматически, см. методы, приведенные в этой статье, чтобы переопределить параметры по умолчанию непосредственно в файле проекта.
Предупреждение
LangVersion
Настройка элемента latest
не рекомендуется. Параметр означает, latest
что установленный компилятор использует последнюю версию. Значение latest
может меняться с компьютера на компьютер, что делает сборки ненадежными. Кроме того, он включает функции языка, для которых могут потребоваться функции среды выполнения или библиотеки, не включенные в текущий пакет SDK.
Если необходимо явно указать версию C#, это можно сделать несколькими способами:
- Вручную измените файл проекта.
- задание языковой версии для нескольких проектов в подкаталоге;
- Настройте параметр компилятора LangVersion.
Совет
Языковая версия в Visual Studio отображается на странице свойств проекта. На вкладке "Сборка" на панели "Дополнительно" отображается выбранная версия.
Чтобы узнать, какую версию языка вы используете в данный момент, поставьте #error version
(с учетом регистра) в коде. Эта pragma заставляет компилятор выдавать ошибку с кодом CS8304 с сообщением, которое содержит версию компилятора и текущую выбранную версию языка. Дополнительные сведения об этой прагме см. в #error (справочник по C#).
Версию языка можно задать в файле проекта. Файл проекта — это *.csproj
файл в корневой папке проекта. Например, если вы явно хотите получить доступ к функциям предварительной версии, добавьте элемент, как показано в следующем примере:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Значение preview
использует последнюю доступную предварительную версию языка C#, поддерживаемую вашим компилятором.
Чтобы настроить несколько проектов C#, можно создать файл Directory.Build.props , как правило, в каталоге решения, который содержит <LangVersion>
элемент. Добавьте следующий параметр в файл Directory.Build.props :
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Сборки во всех подкаталогах каталога, содержащего этот файл, теперь используют предварительную версию C#. Дополнительные сведения см. в статье Настройка сборки.
Примечание
Версии для C# и VB отличаются. Не используйте файл Directory.Build.Props для папки, в которой вложенные каталоги содержат проекты для обоих языков. Версии не соответствуют.
Важно!
Использование более новой версии языка C#, чем версия, связанная с целевой платформой TFM, не поддерживается.
В следующей таблице показаны все текущие версии языка C#. Старые компиляторы могут не понимать каждое значение. Если установить последний пакет SDK для .NET, у вас есть доступ ко всем перечисленным.
Значение | Значение |
---|---|
preview |
Компилятор допускает использование любого допустимого синтаксиса языка из последней предварительной версии. |
latest |
Компилятор принимает синтаксис из последней выпущенной версии компилятора (включая дополнительный номер версии). |
latestMajor или default |
Компилятор принимает синтаксис из последней основной версии компилятора. |
14.0 |
Компилятор принимает только синтаксис, включенный в C# 14 или более поздней версии. |
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). |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: