【发布时间】:2021-12-03 07:03:10
【问题描述】:
我有这个代码
MyClass instance = new MyClass();
VS Intellisense 显示:
'new'表达式可以简化
并在选择该操作后,将代码更改为:
MyClass instance = new();
但随后构建失败,错误代码为 CS8181:
'new' 不能与元组类型一起使用。请改用元组文字表达式。
我无法理解此错误消息,因为 MyClass 与 tuple 类型无关。这是一个具有int、string 和list 属性且没有继承的普通类。另外,为什么 Intellisense 建议的操作会导致错误。
我已将此问题报告给 VS 开发社区。 Link
提前感谢您的帮助。
【问题讨论】:
-
“为什么 Intellisense 建议的操作会导致错误” - 为什么任何程序都会出现故障?将其报告为错误。
-
为什么?在我看来这很合理。 “这是我的课。这是 Intellisense 提示我重构的代码。当我这样做时,代码变成了这样,我得到一个编译错误,就是这样。”
-
您可以向 Microsoft 发送您重现问题的视频以及所有代码等。使用 Vs“报告问题”选项。也许,
var instance = new MyClass();也会让这个建议消失.. -
等等,你已经标记了 .NET 4.6.1。你选择了什么语言版本?
new()是 C# 9.0,但在旧平台上不受支持,尽管某些功能(如此类)不需要框架支持。确保在错误报告中包含该事实。它不应该建议对旧语言版本进行更改。 -
@PMF:同意。这就是我告诉 OP 将其包含在错误报告中的原因。
标签: c# .net visual-studio visual-studio-2019 .net-4.6.1