Это может быть потому, что компилятор по умолчанию использует разные версии языка C # для разных целевых фреймворков.
Чтобы переопределить язык C # по умолчанию, добавьте в файл проекта (как предложено в вопросе):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
или:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
См. Версии языка C # для версий языка C # по умолчанию для различных целевых структур и как вручную выбрать версию языка C #.
См. Также ответ о переполнении стека. Поддерживает ли C # 8 .NET Framework? для получения дополнительной информации по этой теме.
Вот часть статьи о версии языка C # :
Управление версиями на языке C #
Последний компилятор C # определяет версию языка по умолчанию на основе целевой платформы или структур вашего проекта. Это связано с тем, что язык C # может иметь функции, основанные на типах или компонентах среды выполнения, которые недоступны в каждой реализации .NET. Это также гарантирует, что для любой цели, против которой построен ваш проект, вы получите версию наивысшей совместимости по умолчанию.
Правила в этой статье применяются к компилятору, поставляемому с Visual Studio 2019 или .NET Core 3.0 SDK. Компиляторы C #, которые являются частью установки Visual Studio 2017 или более ранних версий .NET Core SDK, по умолчанию предназначены для C # 7.0.
Значения по умолчанию
Компилятор определяет значение по умолчанию на основе этих правил:
--------------------------------------------------------
Target framework | version | C# language version default
--------------------------------------------------------
.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 | all | C# 7.3
--------------------------------------------------------
Переопределить значение по умолчанию
Если вам необходимо явно указать версию C #, вы можете сделать это несколькими способами:
- Отредактируйте файл проекта вручную.
- Установите языковую версию для нескольких проектов в подкаталоге.
- Настройте параметр компилятора -langversion.
Редактировать файл проекта
Вы можете установить языковую версию в вашем файле проекта. Например, если вы явно хотите получить доступ к функциям предварительного просмотра, добавьте такой элемент:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Значение preview
использует последнюю доступную предварительную версию языка C #, которую поддерживает ваш компилятор.
Настроить несколько проектов
Чтобы настроить несколько проектов, вы можете создать файл Directory.Build.props , содержащий <LangVersion>
элемент. Вы обычно делаете это в своем каталоге решений. Добавьте следующее в файл Directory.Build.props в каталоге вашего решения:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Теперь сборки в каждом подкаталоге каталога, содержащего этот файл, будут использовать предварительную версию C #. Для получения дополнительной информации см. Статью « Настройка сборки» .