Включение C#9 в .net5 Preview5 вызывает ошибку компилятора для новой функции C#9

Я последовал этому ответу: Как включить предварительный просмотр C# 9.0, чтобы включить C#9.

Я установил.net5 preview5, который включает новый C#9.

Microsoft.NETCore.App 5.0.0-preview.5.20278.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Я пытаюсь использовать C# 9

public class Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }
}

с настройкой проекта, например:

<LangVersion>9</LangVersion>

но получить ошибку компиляции:

Ошибка CS1617 Недопустимый параметр "9" для /langversion. Используйте '/langversion:?' чтобы перечислить поддерживаемые значения.

Я не нашел 9 в списке при запуске:

csc -langversion:?

список

default
1
2
3
4
5
6
7.0
7.1
7.2
7.3
8.0 (default)
latestmajor
preview
latest

Затем используется, как предлагается в этом ответе, но это не может помочь, а также это

<LangVersion>preview</LangVersion>

Но получаю ошибку компиляции.

Program.cs(26,40): ошибка CS1014: ожидался метод доступа get или set

Как я упустил возможность использовать C# 9 в.net5 preview 5?

1 ответ

Я включил С # 9, как описано в этом ответе, и @PanagiotisKanavos

<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>net5.0</TargetFramework>
  <LangVersion>Preview</LangVersion> 
</PropertyGroup>

Net5 Preview 5 или Preview 6 не поддерживают init функция и большинство C# 9.

Я установил последние версии SDK для разработки с https://aka.ms/dotnet/net5/dev/Sdk/dotnet-sdk-win-x64.exe. В настоящее время доступна предварительная версия 8 (версия 5.0.100-preview.8.20327.5).

Я умею строить проекты, в том числе init функция в VS 2019.6.2 (редактор по-прежнему показывает красные линии, но сборка успешна) или с использованием VScode (идеально, и IDE воспринимает новый синтаксис С # 9)

Большинство, почти все функции C# 9 в блоге нормально работают с Net5 Preview 8.

Обновление 3 июля 2020 г.

Альтернативное решение

Для работы с Net 5 Preview 5 установите пакет Microsoft.Net.Compilers.Toolset, Version 3.8.0-1.20330.5. ИТ поддержкаinit функция и многие новые функции C# 9.

Install-Package Microsoft.Net.Compilers.Toolset -Version 3.8.0-1.20330.5 -Source https://dotnet.myget.org/F/roslyn/api/v3/index.json 

Обновление 7 августа 2020 г.

Visual Studio 2019 версии 16.7 выпущена с поддержкой C# 9.

В командной строке разработчика введите команду:

csc -langversion:?

Supported language versions:
default
1
2
3
4
5
6
7.0
7.1
7.2
7.3
8.0 (default)
9.0
latestmajor
preview
latest

вы видите 9.0 в списке выше, и вы можете определить LangVersion как 9.0:

<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>net5.0</TargetFramework>
  <LangVersion>9.0</LangVersion> 
</PropertyGroup>

Вам не нужно устанавливать Microsoft.Net.Compilers.Toolset v 3.8.0-1.20330.5, поскольку поддерживается C# 9.

Following this: https://dotnetcoretutorials.com/2020/08/07/getting-setup-with-c-9-preview/

There are two main things specific to Visual Studio.

  • Ensure that Visual Studio is updated to the very latest version. I cannot tell you how many times things don't work in Visual Studio, but do work from the command line/VS Code, and it's because of the version of Visual Studio.

  • Во-вторых, вам нужно выбрать Инструменты => Параметры => "Возможности предварительного просмотра", а затем установить флажок "Использовать предварительные версии.NET Core SDK". Я думаю, они добавили эту функцию для того, чтобы вы могли "поиграть" с предварительными SDK, но не заставляли вашу повседневную работу строиться на функциях предварительного просмотра. Но вам нужно поставить галочку, чтобы все работало.

Другие вопросы по тегам