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

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

另一种以批量模式强制执行表达式主体成员偏好设置的选项是 代码清理。 您可以使用内置配置文件之一 完全清理或 重新格式化并应用语法样式运行 代码清理 ,或者创建并运行 仅针对您特定任务的自定义配置文件 ,如下所述。
使用自定义代码清理配置文件应用表达式主体函数的偏好设置
从主菜单中选择 或按 Alt+R O 。
转到代码清理配置文件设置页面: 。
按照 创建新的自定义清理配置文件 部分的描述创建一个新配置文件。 在新配置文件的 选定的配置文件设置 部分中,勾选 应用代码主体样式(表达式主体与块主体) 复选框。 可选地,您可以在此配置文件中启用其他代码清理任务。
单击 选项 对话框中的 保存 应用修改,让 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 不会为
void方法以及包含 lambda 表达式的方法建议使用表达式体。您可以通过清除 应用样式启发 复选框来简化此逻辑。 在这种情况下,逻辑很简单:如果您选择对某种类型的成员使用表达式体,ReSharper 将建议使用表达式体,只要此类成员的声明由单个语句组成。
单击 选项 对话框中的 保存 应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
您还可以直接在编辑器中更改函数主体的偏好设置,其中会突出显示相应的问题:
从编辑器更改使用表达式主体的偏好
此功能在以下语言和技术中 受支持:
