JetBrains Rider 2025.2 Help

代码检查:在创建的类型显而易见时,使用首选的 'new' 表达式样式

从 C# 9.0 开始,您可以使用目标类型的 new 运算符创建对象,而无需显式指定类型,当类型可以被推断时,即 List<string> _myList = new(); 而不是 List<string> _myList = new List<string>();

根据上下文,可选的类型指定可能会使您的代码因冗余信息而显得杂乱无章,或者相反,提高可读性。

此检查控制在使用中创建的类型显而易见时,对对象创建表达式的代码样式偏好,例如以下情况:

  • 字段/常量/属性/事件的初始化器 private Test field = new()

  • 当显式类型是首选时,局部变量的初始化器 Test local = new()

  • 表达式主体成员的返回值 public List <Test> M() => new()

  • 数组初始化器中的值 new Test[] { new(), new() }

  • 集合初始化器中的值 new List <Test> { new(), new() }

  • 默认参数值 void M(TestStruct arg = new()) { }

默认情况下,JetBrains Rider 会将显而易见情况下的类型指定标记为冗余,并帮助移除它们:

JetBrains Rider 语法样式检查:使用目标类型的 new

如果您更喜欢在代码中为 new 运算符使用其他样式,您可以 更改相应的偏好设置

如需更多信息,请参阅 代码语法样式:对象创建('new()' 与 'new T()')

最后修改日期: 2025年 9月 26日