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

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

如果您更喜欢在代码中为 new 运算符使用其他样式,您可以 更改相应的偏好设置。
另一种以批量模式强制执行对象创建表达式偏好的选项是 代码清理。 您可以使用内置的配置文件之一 运行代码清理 ,例如 完全清理或 重新格式化并应用语法样式 ,或者创建并运行 仅针对特定任务的自定义配置文件 ,如下所述。
使用自定义代码清理配置文件应用对象创建样式
按下 Ctrl+Alt+S 或从菜单中选择 (Windows 和 Linux)或 (macOS)。
转到代码清理配置文件设置页面: 。
按照 创建新的自定义清理配置文件 部分中描述的步骤创建一个新配置文件。 在新配置文件的 选定的配置文件设置 部分中,勾选 应用对象创建样式('new()' 与 'new T()') 复选框。 您还可以选择在此配置文件中启用其他代码清理任务。
在 设置 对话框中点击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置。
选择您希望强制执行偏好的范围:
将光标放置在文件中的任意位置,以对文件强制执行您的偏好设置。
在 解决方案资源管理器 中选择一个或多个项目,以对这些节点及其子项下的文件强制执行您的偏好设置。
按 Ctrl+R, C 或从主菜单中选择 。
在打开的 重新格式化并清理代码 对话框中,选择新创建的配置文件,并根据需要选择另一个范围。 在打开的 重新格式化并清理代码 对话框中,选择新建的配置文件,并在需要时选择其他作用域。
点击 确定。 JetBrains Rider 将在选定范围内强制执行您的偏好设置。
如果您希望在不打开 重新格式化并清理代码 对话框选择配置文件的情况下强制执行对象创建表达式的样式偏好,您可以将创建的配置文件绑定到 静默清理 ,并通过按 Ctrl+R, G 运行它。 您还可以创建一个 自定义清理配置文件 ,将对象创建表达式的整理与其他代码样式任务结合起来。
要将对象创建表达式的偏好与所有其他 格式化 和 语法样式 规则一起应用于选定的代码块, Alt+Enter 并选择 。
您可以在最近修改并准备提交到 Git 的代码中强制执行对象创建表达式的样式偏好。 JetBrains Rider 将在提交之前运行选定的 清理配置文件。
在提交到 Git 之前清理代码
按 Ctrl+K 或从主菜单中选择 。
在 提交 工具窗口中,点击
,并在 提交检查 区域中,选择 清理方式... 复选框。
点击 选择配置文件 并选择您的自定义 Code Cleanup 配置文件。
点击 提交 或 提交并推送。 JetBrains Rider 将在提交暂存的文件中运行代码清理,然后提交更改。
您可以在每次保存文件更改时强制执行对象创建表达式的样式偏好,以确保您的编辑始终符合代码样式。 请注意,这仅在您通过 Ctrl+S 或 Ctrl+S 显式保存更改时发生,不会因 自动保存 而触发。 然而,所有自动保存的文件都会被放入“重新格式化和清理”队列,并将在下次显式保存时处理。
在保存更改时自动强制执行对象创建表达式的样式偏好
按下 Ctrl+Alt+S 打开设置,然后选择 。
选择 重新格式化并清理代码 ,选择您的自定义 Code Cleanup 配置文件,并决定是将其应用于整个文件还是仅应用于更改的行。
下次您完成编辑并保存文件或所有文件时,JetBrains Rider 将使用选定的配置文件清理受影响的文件。
配置对象创建表达式的偏好设置
您的对象创建表达式偏好是通过 基于层的设置 机制保存的。 此外,该机制允许您为不同的解决方案维护不同的偏好,并将这些偏好保存在 VCS 中,自动与团队成员共享。