Задаем версию C# в Visual Studio

C# logoС выходом C# 7, компания Microsoft изменила подход к выпуску новых версий языка: стали доступны минорные версии, которые понемногу расширяют его возможности. Использовать их или ждать выхода следующей мажорной версии – решать самим разработчикам. Поэтому по умолчанию поддержка промежуточных версий выключена.

Visual Studio 2019.3 (версия 16.3)

С 3 обновлением Visual Studio 2019 стала доступна 8 версия языка C#, которая требует поддержку со стороны платформы. Поэтому Visual Studio 2019 стала автоматически выставлять доступную версию языка в зависимости от выбранной в качестве цели платформы.

  • .NET Framework (все версии) – C# 7.3
  • .NET Standard 2.0 и предидущие – C# 7.3
  • .NET Standard 2.1 – C# 8
  • .NET Core 2.x и предидущие – C# 7.3
  • .NET Core 3.x и новее– C# 8

При этом, выбор версия языка в диалоге Advanced Build Setting отключен и дополнен поясняющим сообщением:

C# version auto select

Visual Studio 2019 до 3 обновления и Visual Studio 2017

Для использования минорных версий языка c Visual Studio 2017 необходимо обновить ее до версии 15.3 (Update 3) или выше. После этого появится возможность установить какая версия языка будет использоваться в проекте.

Необходимо отметить, что данная настройка находится на уровне проектов. Поэтому если в решении (solution) больше одного проекта, то каждый из них настраивается индивидуально. При этом решение может содержать проекты с различными настройками версии языка.

Свойства проекта

Чтобы открыть диалог с настройкой доступных версий, необходимо в свойствах проекта на закладке “Build” нажать на кнопку "Advanced…".

Project properties

Здесь доступно несколько вариантов:

  • default (вариант по умолчанию) разрешает использовать последнюю мажорную версию (на данный момент это C# 7).
  • номер необходимой версии языка (включая минорные варианты). В этом случае проект будет ограничен использованием заданной версии даже после выхода очередного минорного или мажорного обновления языка.
  • latest позволит использовать все новые минорные и мажорные версии, которые станут доступны в проекте автоматически по мере их выхода.

Что лучше выбрать? То что больше подходит каждому разработчику или команде в зависимости от предпочтений и условий работы.

Файл проекта .csproj

Кроме того, можно установить версию языка непосредственно исправив файл проекта .csproj. Для этого необходимо добавить или изменить значение для следующего свойства:

<PropertyGroup>
    <LangVersion>latest</LangVersion>
</PropertyGroup>

В качестве значения можно использовать номер версии (начиная с 3)  или две специальных константы, которые были упомянуты чуть ранее: default и latest.

Обратите внимание, что Visual Studio создает свой вариант свойства для каждой конфигурации. Если оно уже было изменено через описанный выше интерфейс, то в файле проекта будут несколько свойств вида:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <LangVersion>latest</LangVersion>
</PropertyGroup>

Код на новой версии языка

Последний вариант – просто написать код, который использует возможности новой версии. При этом Visual Studio сама предложит ��становить эту версию или вариант latest в качестве версии языка для проекта.

Visual Studio 2017 C# version selector

Добавить комментарий