c# 版本 8 Target-typed new-expressions error requires (), [], or {} after type

c# version 8 Target-typed new-expressions error requires (), [], or {} after type

我正在按照教程学习使用 .Net Core 3.1 的 c# 版本 8 的新功能

我正在使用最新版本的 Visual Studio 2019。 在做一些练习时,我喜欢下一个代码中的错误

主题:目标类型的新表达式

Dictionary<string, List<int>> field = new Dictionary<string, List<int>>();
Dictionary<string, List<int>> field = new(); //this throws the error "requires (), [], or {} after type requires (), [], or {} after type"

我错过了什么吗? 我也尝试添加到项目中

<LangVersion>8.0</LangVersion>

有什么想法吗?

尽管您可以在任何在线教程中找到语法,但您使用的语法无效。目标类型 new 最初是为 C# 8.0 计划的,但最终没有被最终削减。

现在 (2020-05-10) 标有里程碑“9.0 Candidate”,这意味着它 可能 它赢了也将成为下一次迭代的一部分。参见 this github proposal/issue

也就是说,您可以通过选择 "C# Next: Target-typed new (9 Mar 2020)" 分支在 SharpLab 上试用该功能。