代码检查:在创建的类型显而易见时,使用首选的 '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()) { }
默认情况下,ReSharper 会在显而易见的情况下将类型指定标记为冗余,并帮助删除它们:

如果您更喜欢在代码中为 new 运算符使用其他样式,您可以 更改相应的偏好设置。
有关更多信息,请参阅 代码语法样式:对象创建('new()' 与 'new T()')
最后修改日期: 2025年 9月 27日