【问题标题】:Visual Studio Intellisense shows "new expression can be simplified", but that fails the buildVisual Studio Intellisense 显示“可以简化新表达式”,但构建失败
【发布时间】:2021-12-03 07:03:10
【问题描述】:

我有这个代码

MyClass instance = new MyClass();

VS Intellisense 显示:

'new'表达式可以简化

并在选择该操作后,将代码更改为:

MyClass instance = new();

但随后构建失败,错误代码为 CS8181:

'new' 不能与元组类型一起使用。请改用元组文字表达式。

我无法理解此错误消息,因为 MyClasstuple 类型无关。这是一个具有intstringlist 属性且没有继承的普通类。另外,为什么 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


【解决方案1】:

如文档所述 here 如果您使用 C#9.0+,则可用。我猜你使用的 C# 版本低于要求。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
相关资源
最近更新 更多