Включение 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, но не заставляли вашу повседневную работу строиться на функциях предварительного просмотра. Но вам нужно поставить галочку, чтобы все работало.