代码语法样式:对象创建('new()' 与 'new T()')
从 C# 9.0 开始,您可以使用目标类型的 new 运算符创建对象,而无需显式指定类型,当类型可以被推断时,即 List<string> _myList = new(); 而不是 List<string> _myList = new List<string>();。
根据上下文,可选的类型指定可能会使您的代码因冗余信息而显得杂乱无章,或者相反,提高可读性。
因此,ReSharper 提供了两种对象创建表达式的代码样式偏好:
当创建的类型从使用中显而易见时,例如以下情况:
字段/常量/属性/事件的初始化器
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()) { }
当创建的类型不明显时(例如,在 return 语句中)。
ReSharper 帮助您在现有代码中强制执行对象创建表达式的样式偏好,并在使用 代码补全 和 代码生成 功能生成新代码时考虑您的偏好,应用 代码模板 并执行 重构。
强制执行对象创建表达式的偏好设置
默认情况下,ReSharper 会将显而易见情况下的类型指定标记为冗余,并帮助移除它们:

另一方面,在不明显的情况下,ReSharper 会建议显式指定创建的类型:

如果您更喜欢在代码中为 new 运算符使用其他样式,您可以 更改相应的偏好设置。
另一种以批量模式强制执行对象创建表达式偏好的选项是 代码清理。 您可以使用内置配置文件之一 完全清理或 重新格式化并应用语法样式运行 代码清理 ,或者创建并运行 仅针对您特定任务的自定义配置文件 ,如下所述。
使用自定义代码清理配置文件应用对象创建样式
从主菜单中选择 或按下 Alt+R O 。
转到清理配置文件设置页面: 。
按照 创建新的自定义清理配置文件 部分中的描述创建一个新配置文件。 在右侧的配置文件首选项中,展开 节点并选中 应用对象创建样式('new()' 与 'new T()') 复选框。
在 选项 对话框中点击 保存 以应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
选择要强制执行偏好设置的范围:
将光标放置在文件中的任意位置,以对整个文件强制执行您的偏好设置。
在 解决方案资源管理器 中选择一个或多个项目,以对这些节点及其子项目下的文件强制执行您的偏好。
执行以下操作之一:
按下 Control+Alt+F 或从主菜单中选择 。
右键单击文本编辑器中的任意位置或右键单击选定内容,并在上下文菜单中选择 清理代码。
在打开的 代码清理 对话框中,选择新创建的配置文件。
单击 运行。 ReSharper 将在选定范围内强制执行您的偏好。
如果您希望在不打开 代码清理 对话框选择配置文件的情况下强制执行对象创建表达式的样式偏好,您可以将创建的配置文件绑定到 静默清理 ,并通过按 Control+Shift+Alt+F 运行它。 您还可以创建一个 自定义清理配置文件 ,将对象创建表达式的整理与其他代码样式任务结合起来。
要将对象创建表达式的偏好与所有其他 格式化 和 语法样式 规则一起应用于选定的代码块,请 Alt+Enter 并选择 。
您可以在每次保存文件更改时强制执行对象创建表达式的样式偏好,以确保您的编辑始终符合代码样式。
在保存更改时自动强制执行对象创建表达式的样式偏好
从主菜单中选择 或按下 Alt+R O 。
转到清理配置文件设置页面: 。
选择您的自定义代码清理配置文件并单击 设为默认 (默认配置文件也用于 静默清理)。
转到 选项页面并选择 保存文件时自动运行清理。
或者,您可以通过文件掩码限制自动清理到特定文件。
您还可以选择 仅文件的更改部分 以确保清理仅应用于受您更改影响的代码,而文件中的其余代码不会被修改。
如果您选择仅清理文件的更改部分,您可以通过以下选项微调此行为:
如果无法执行部分清理,则执行完全清理——根据此选项,ReSharper 将清理整个文件,或者如果无法将清理限制为文件的修改部分,则跳过该文件。
允许在保存共享文件时进行清理——使用此选项启用或禁用对多次包含在解决方案中的文件(例如来自共享项目的文件)的部分清理。
单击对话框中的 保存 以应用修改,并让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
下次您完成编辑并保存文件( Ctrl+S )或所有文件( Ctrl+Shift+S )时,ReSharper 将使用所选配置文件清理受影响的文件。 如果未选择 默认清理配置文件 ,ReSharper 将提示您选择一个配置文件。
配置对象创建表达式的偏好设置
您的对象创建表达式偏好是通过 基于层的设置 机制保存的。 除此之外,此机制还允许您为不同的解决方案维护不同的偏好,并将这些偏好保存在 VCS 中并自动与您的团队成员共享。
转到 ReSharper 选项 的 页面 Alt+R, O 。
在 对象创建 类别中,指定当创建的类型从使用中显而易见/不明显时是否应首选类型指定。
在 选项 对话框中点击 保存 以应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
在不同语言中的适用性
此功能在以下语言和技术中是 支持的: