Включаем C# 7.x в Visual Studio 2017

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

Для использования минорных версий языка необходимо обновить 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

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