我遵循了这个答案:How to enable C# 9.0-preview to enable C# 9。
我安装了 .NET 5 preview 5,其中包括新的 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; }
}
Run Code Online (Sandbox Code Playgroud)
项目设置如下:
<LangVersion>9</LangVersion>
Run Code Online (Sandbox Code Playgroud)
但我收到一个编译错误:
错误 CS1617 /langversion 的无效选项“9”。使用 '/langversion:?' 列出支持的值。
运行时我没有在列表中找到 9:
csc -langversion:?
Run Code Online (Sandbox Code Playgroud)
名单是:
<LangVersion>9</LangVersion>
Run Code Online (Sandbox Code Playgroud)
<LangVersion>preview</LangVersion>
Run Code Online (Sandbox Code Playgroud)
但我收到编译错误。
Program.cs(26,40):错误 CS1014:需要获取或设置访问器
在 .NET 5 预览版 5 中使用 C# 9 时我错过了什么?
我按照这个答案和@PanagiotisKanavos 中的描述启用了 C# 9 :
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<LangVersion>Preview</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
.NET 5 Preview 5 或 Preview 6 不支持initC# 9 的大部分功能和大部分功能。
我从https://aka.ms/dotnet/net5/dev/Sdk/dotnet-sdk-win-x64.exe安装了最新的 SDK 开发 。
当前预览版 8 可用(版本 5.0.100-preview.8.20327.5)。
我可以init在 Visual Studio 2019.6.2(编辑器仍然显示红线,但构建成功)或使用 Visual Studio Code(完美,IDE 感知新的 C# 9 语法)中构建包含功能的项目。
博客文章中C# 9 的大多数(几乎所有)功能都可以与 .NET 5 Preview 8 一起正常工作。
2020 年 7 月 3 日更新
替代方案
要使用 .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
Run Code Online (Sandbox Code Playgroud)
2020 年 8 月 7 日更新
Visual Studio 2019 版本 16.7 发布,支持 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
Run Code Online (Sandbox Code Playgroud)
你9.0在上面的列表中看到,你可以定义LangVersion为 9.0:
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
Run Code Online (Sandbox Code Playgroud)
您无需安装 Microsoft.Net.Compilers.Toolset v 3.8.0-1.20330.5,因为支持 C# 9。