代码语法样式:类型成员的主体
从 C# 6.0 开始,您可以使用 表达式主体声明类型成员,其外观与 lambda 表达式非常相似。 您可以使用表达式主体方法和属性进一步简化简单实现的语法。
如果您更倾向于为简单成员坚持使用表达式主体或块主体实现,JetBrains Rider 允许您 分别为不同类型的成员配置您的偏好 ,并在整个代码库中保持偏好的一致性。
JetBrains Rider 帮助您在现有代码中强制执行表达式主体成员的偏好设置,并在使用 代码补全和 代码生成功能生成新代码时考虑您的偏好设置,应用 代码模板并执行 重构。
强制执行表达式主体函数的偏好设置
JetBrains Rider 可以帮助您检查所有简单成员是否符合您的 偏好设置 ,如果不符合,它会 高亮显示这些实现,并建议相应的 快速修复或 范围内修复。 默认情况下,JetBrains Rider 的偏好设置表明属性、索引器和事件更适合使用表达式主体:

对于其他类型的成员,默认情况下不提供建议。 但是,您可以以不同的方式配置 偏好设置 ,例如,让 JetBrains Rider 建议将表达式主体方法转换为块主体:

另一种批量强制执行表达式主体成员偏好设置的选项是 代码清理。 您可以使用内置的配置文件之一 运行代码清理 ,例如 完全清理或 重新格式化并应用语法样式 ,或者创建并运行 仅针对特定任务的自定义配置文件 ,如下所述。
使用自定义代码清理配置文件应用表达式主体函数的偏好设置
按下 Ctrl+Alt+S 或从菜单中选择 (Windows 和 Linux)或 (macOS)。
转到代码清理配置文件设置页面: 。
按照 创建新的自定义清理配置文件 部分中描述的步骤创建一个新配置文件。 在新配置文件的 选定的配置文件设置 部分中,勾选 应用代码主体样式(表达式主体与块主体) 复选框。 您还可以选择在此配置文件中启用其他代码清理任务。
在 设置 对话框中点击 保存 以应用修改,并让 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 中,自动与团队成员共享。
在设置中配置表达式主体样式
转到 JetBrains Rider 设置 的 页面 Ctrl+Alt+S ,然后选择 语法样式 选项卡。
根据您的编码实践/标准修改 代码主体 类别中的设置。
默认情况下,JetBrains Rider 使用启发式方法决定是否将方法的块体转换为表达式体。 其中包括,JetBrains Rider 不会为
void方法以及包含 lambda 表达式的方法建议使用表达式体。您可以通过清除 应用样式启发 复选框来简化此逻辑。 在这种情况下,逻辑很简单:如果您选择对某种类型的成员使用表达式体,那么如果该类型成员的声明由单个语句组成,JetBrains Rider 将建议使用表达式体。
在 设置 对话框中点击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置。
您还可以直接在编辑器中更改函数主体的偏好设置,其中会突出显示相应的问题:
