Це може бути тому, що компілятор використовує за замовчуванням різні версії мови 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 #, ви можете зробити це кількома способами:
- Відредагуйте файл проекту вручну.
- Встановіть мовну версію для декількох проектів у підкаталозі.
- Налаштуйте параметр компілятора -лангверсії.
Відредагуйте файл проекту
Ви можете встановити мовну версію у файлі проекту. Наприклад, якщо ви явно хочете отримати доступ до функцій попереднього перегляду, додайте такий елемент:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Значення preview
використовує останню доступну версію мови C # для попереднього перегляду, яку підтримує ваш компілятор.
Налаштування декількох проектів
Для налаштування декількох проектів можна створити файл Directory.Build.props, який містить <LangVersion>
елемент. Ви зазвичай робите це у своєму каталозі рішень. Додайте до файлу Directory.Build.props у своєму каталозі рішення:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Тепер, будується у кожному підкаталозі каталогу, що містить цей файл, буде використана версія C # для попереднього перегляду. Для отримання додаткової інформації дивіться статтю про Налаштування складання .