ReSharper 2025.2 Help

代码清理

ReSharper 允许您以批量模式应用 格式化和其他代码样式偏好 ,从而立即消除一个或多个文件、项目或整个解决方案中的代码样式违规。

代码清理配置文件

代码清理可以根据您的需求在不同情况下应用各种配置(配置文件)。 开箱即用地提供了三个默认配置文件:

这些配置文件在大多数情况下都很有帮助,但您无法配置它们。 如果您希望使用自定义的 清理任务集运行代码清理,您需要创建一个自定义配置文件并在其中指定所需的任务集。

创建新的自定义清理配置文件

  1. 从主菜单中选择 ReSharper | 选项 或按 Alt+R O

  2. 转到代码清理配置文件设置页面: 代码编辑 | 代码清理 | 配置文件

  3. 在左侧选择一个现有的配置文件,然后单击页面顶部的 重复。 ReSharper 将创建一个新的清理配置文件,其任务集与原始配置文件相同。

  4. 在配置文件列表中选择新创建的配置文件。

  5. 单击页面顶部的 配置

  6. 所选配置文件的 任务在右侧变为可编辑。 根据需要配置它们。

  7. 如果您希望在保存修改之前创建或编辑其他配置文件,请单击页面顶部的 完成 以暂时记住当前配置文件的修改。

  8. 单击 选项 对话框中的 保存 应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置

当您 运行代码清理时,新创建的清理配置文件将在 代码清理 对话框中可用。 您还可以将此配置文件设置为用于 静默清理

同时使用不同的清理配置文件

ReSharper 允许您为 解决方案中的大多数文件 使用特定的代码清理配置文件,并为某些文件使用不同的代码清理配置文件。 您还可以完全跳过某些文件的清理。

为此,请使用 用于清理配置文件的 resharper_substitution EditorConfig 属性,并采用以下语法:

[reformatIfRunWithFullCleanup.cs] resharper_substitution_for_cleanup_profile.anysuffix=Built-in:Full Cleanup => Built-in: Reformat Code [alwaysReformat.cs] resharper_substitution_for_cleanup_profile=* = > Built-in:Reformat Code [skipIfRunWithFullCleanup.cs] resharper_substitution_for_cleanup_profile=Built-in:Full Cleanup => skip [skipCleanup.cs] resharper_substitution_for_cleanup_profile=* => skip

此语法允许您在使用特定配置文件启动 Code Cleanup 时使用不同的配置文件——在此情况下,在 => 左侧指定该配置文件的名称;或者在使用任意配置文件启动 Code Cleanup 时——在此情况下,在 * 左侧写入 =>。 在 => 右侧指定应使用的配置文件名称,或者如果不应对匹配的文件应用 Code Cleanup,则写入 跳过

运行代码清理

ReSharper 可以将代码清理应用于任意选定的代码块、当前文件中的所有代码、目录中的所有文件、当前项目,甚至是整个解决方案。 通过选择正确的 清理任务集并选择正确的 清理配置文件 ,确保选择正确的设置。

清理选定内容或文件

  1. 选择您希望清理代码的范围:

    • 在编辑器中选择内容以清理选定内容中的代码。

    • 将光标放置在文件中的任意位置以清理文件中的代码。

  2. 如果您正在清理选定内容,请按 Alt+Enter 并选择 重新格式化并清理 | [清理配置文件]

    或者,您可以按照以下步骤操作,适用于选区和文件。

  3. 执行以下操作之一:

    • Control+Alt+F 或从主菜单中选择 ReSharper | 编辑| 清理代码…

    • 右键单击文本编辑器中的任意位置或右键单击选定内容,然后在上下文菜单中选择 清理代码

  4. 在打开的 代码清理 对话框中,选择一个 清理配置文件以应用。 使用所选配置文件右侧的区域检查该配置文件中包含的任务。

  5. 如果没有可用的配置文件适合您,请选择一个现有的配置文件并单击 重复创建新的自定义配置文件

    请注意,如果您在此对话框中创建或修改清理配置文件,您的更改将使用 智能保存逻辑保存。 如果您需要将修改保存到 共享设置层 ,请在 ReSharper 选项的 代码编辑 | 代码清理 页面上进行修改,单击 保存到 ,然后选择所需的设置层。

    ReSharper。 代码清理对话框
  6. 单击 运行 以清理选定范围内的代码。

  7. 默认情况下,编辑器中打开的文件在清理后不会自动保存。 如果您希望在清理后启用自动保存,请在 ReSharper 选项 的 代码编辑 | 代码清理 | 常规 页面上选择 在对整个文件应用清理后保存 Alt+R, O

您不仅可以清理单个文件,还可以清理目录、项目或整个解决方案中的多个文件。 为此,请从 解决方案资源管理器 运行代码清理。

清理多个文件、项目或整个解决方案

  1. 解决方案资源管理器 中选择一个或多个项目(文件、目录、项目或解决方案)。

  2. 执行以下操作之一:

    • Control+Alt+F 或从主菜单中选择 ReSharper | 编辑| 清理代码…

    • 右键单击所选内容,然后在上下文菜单中选择 清理代码

  3. 选择上文描述的清理配置文件。

  4. 单击 运行 以清理选定范围内的代码。

您可以在每次保存文件更改时运行代码清理,以确保您的编辑始终符合代码样式。

在保存更改时自动运行代码清理

  1. 从主菜单中选择 ReSharper | 选项 或按 Alt+R O

  2. 转到代码清理配置文件设置页面: 代码编辑 | 代码清理 | 配置文件

  3. 选择在保存时应应用的 代码清理配置文件并单击 设为默认 (默认配置文件也用于 静默清理)。

  4. 转到 代码编辑 | 代码清理 | 常规 选项页面并选择 保存文件时自动运行清理

    可选地,您可以通过文件掩码限制自动清理到特定文件。

    您还可以选择 仅更改的文件部分 ,以确保清理仅应用于受更改影响的代码,而文件中的其余代码不会被修改。

    如果您选择仅清理文件的更改部分,可以通过以下选项微调此行为:

    • 如果无法执行部分清理,则执行完全清理 — 根据此选项,ReSharper 将清理整个文件,或者如果无法将清理限制为文件的修改部分,则跳过该文件。

    • 允许在保存共享文件时进行清理 — 使用此选项启用或禁用对多次包含在解决方案中的文件(例如共享项目中的文件)的部分清理。

  5. 在对话框中单击 保存 以应用修改,并让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置

  6. 下次您完成编辑并保存文件( Ctrl+S )或所有文件( Ctrl+Shift+S )时,ReSharper 将使用选定的配置文件清理受影响的文件。 如果未选择 默认清理配置文件 ,ReSharper 将提示您选择一个配置文件。

您还可以在最近打开或修改的文件中运行代码清理。

清理最近修改的文件

  1. 展开 ReSharper | 编辑 | 清理最近文件 处的子菜单。

  2. 选择是对所有打开的文件还是对所有最近修改的文件运行清理。

    清理... actions will prompt you to choose a cleanup profile, 静默清理... actions will use the default cleanup profile selected on the 代码编辑 | 代码清理 | 配置文件 page of ReSharper 选项 Alt+R, O .

  3. 如果您选择清理最近修改的文件,ReSharper 将对解决方案中在过去 7 天内编辑的所有文件应用所选清理配置文件。

    You can change the number of days during which changes should be considered recent on the 代码编辑 | 代码清理 | 常规 page of ReSharper 选项 Alt+R, O .

    您还可以选择 仅更改的文件部分 ,以确保清理仅应用于受更改影响的代码,而文件中的其余代码不会被修改。

静默清理

您还可以以静默模式运行代码清理,即不显示 代码清理 对话框。 由于在这种情况下您将无法显式选择配置文件,因此您必须为静默代码清理分配一个清理配置文件。

为静默代码清理分配一个配置文件

  1. 从主菜单中选择 ReSharper | 选项 或按 Alt+R O

  2. 转到代码清理配置文件设置页面: 代码编辑 | 代码清理 | 配置文件

  3. 在左侧选择一个清理配置文件,然后点击 选项 页面顶部的 设为默认

  4. 单击 选项 对话框中的 保存 应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置

以静默模式运行代码清理

  1. 执行以下操作之一:

    • 要在特定代码文件中运行静默代码清理,请在文本编辑器中打开该文件或在 解决方案资源管理器 中选择它。

    • 要将静默代码清理应用于一组文件(目录、项目或解决方案),请选择 解决方案资源管理器 中的相应项目。

  2. Control+Shift+Alt+F 或从主菜单中选择 ReSharper | 编辑| 静默清理代码。 或者,您可以按 Control+Shift+A ,在弹出窗口中开始输入命令名称,然后在那里选择它。

可用的代码清理任务

下表列出了不同语言的可用清理任务。 如果您只需要清理执行其中的一部分任务,可以为此 创建自定义清理配置文件

重新设置代码格式

C#

重新设置代码格式

根据您可以在 ReSharper 选项 的 代码编辑 | C# | 格式化样式 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则

重新格式化嵌入式 XML 文档注释

根据您可以在 ReSharper 选项 的 代码编辑 | XML 文档注释 | 格式样式 页面上配置的选项重新格式化 XML 文档注释。

请注意,ReSharper 不会重新格式化以下类型的普通注释:

// A plain single-line comment

或者

/* A plain multi-line comment */

C++

重新设置代码格式

根据您可以在 ReSharper 选项 的 代码编辑 | C++ | 格式化样式 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则

Visual Basic

重新设置代码格式

根据您可以在 ReSharper 选项 的 代码编辑 | Visual Basic | 格式样式 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则

重新格式化嵌入式 XML 文档注释

根据您可以在 ReSharper 选项 的 代码编辑 | XML 文档注释 | 格式样式 页面上配置的选项重新格式化 XML 文档注释。

请注意,ReSharper 不会重新格式化以下类型的普通注释:

// A plain single-line comment

或者

/* A plain multi-line comment */

XML

重新设置代码格式

根据您可以在 ReSharper 选项 的 代码编辑 | XML | 格式样式 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则

HTML

重新设置代码格式

根据您可以在 ReSharper 选项 的 代码编辑 | HTML | 格式样式 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则

CSS

重新设置代码格式

根据您可以在 ReSharper 选项 的 代码编辑 | CSS | 格式样式 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则

JavaScript/TypeScript

重新设置代码格式

根据您可以在 ReSharper 选项 的 代码编辑 | JavaScript/TypeScript | 格式样式 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则

重新格式化嵌入式 XML 文档注释

根据您可以在 ReSharper 选项 的 代码编辑 | XML 文档注释 | 格式样式 页面上配置的选项重新格式化 XML 文档注释。

请注意,ReSharper 不会重新格式化以下类型的普通注释:

// A plain single-line comment

或者

/* A plain multi-line comment */

语法样式

C#

应用 'var' 样式

在清理过程中应用 'var' 使用规则。 这些规则可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置。

对类型使用显式或隐式修饰符定义

应用类型修饰符规则——是否显式使用 internal 修饰符。 该规则可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:修饰符

对类型成员使用显式或隐式修饰符定义

应用类型成员修饰符规则——是否显式使用 private 修饰符。 该规则可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:修饰符

排序修饰符

应用类型/成员修饰符的优先顺序。 该规则可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:修饰符

应用实参样式(命名与位置)

对特定参数类型应用命名/位置参数的优先级。 这些优先级可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:命名/位置参数

移除冗余的括号

Removes redundant optional parentheses in cases specified on the 代码编辑 | C# | 语法样式 page of ReSharper 选项 Alt+R, O . 有关更多信息,请参阅 代码语法样式:可选括号

添加圆括号以显式指定运算优先级

添加可选括号以澄清运算优先级,具体情况可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定。 有关更多信息,请参阅 代码语法样式:可选括号

为单行语句添加/移除大括号

根据 ReSharper 选项 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定的情况,添加或移除单个嵌套语句的可选大括号。 有关更多信息,请参阅 代码语法样式:单层嵌套语句的大括号

为属性添加/移除方括号

根据 ReSharper 选项 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定的情况应用多属性的规则。 有关更多信息,请参阅 代码语法样式:多个属性

应用代码主体样式(表达式主体与块主体)

根据 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定的规则,应用类型成员体的首选样式(表达形式或块体)。 有关更多信息,请参阅 代码语法样式:类型成员的主体

排列尾随逗号

根据 ReSharper 选项 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定的规则,在多项声明和类似结构(如对象、数组、集合初始值设定项以及枚举和 switch 表达式)中应用尾随逗号的优先级。 有关更多信息,请参阅 代码语法样式:尾随逗号

应用对象创建样式('new()' 与 'new T()')

Applies preferences for using the target-typed new operator in C# 9.0 and later as specified on the 代码编辑 | C# | 语法样式 page of ReSharper 选项 Alt+R, O . 有关更多信息,请参阅 代码语法样式:对象创建('new()' 与 'new T()')

应用默认值样式('default' 与 'default(T)')

根据 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定的规则,在默认值表达式中使用可选类型规范。 有关更多信息,请参阅 代码语法样式:默认值表达式('default' 与 'default(T)')

排列命名空间(文件作用域与块作用域)

根据 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定的规则,在包含单个命名空间的文件中应用 文件范围命名空间声明的首选方式。 有关更多信息,请参阅 代码语法样式:文件范围命名空间

排列 null 检查模式样式

根据 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上指定的规则,应用 类型检测 'is' 运算符查空表达式的首选方式(与 not null{ })。 有关更多信息,请参阅 代码语法样式:空值检查模式

排列限定符

应用类型成员的限定规则。 这些规则可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:可选成员限定符

修正内置类型引用

应用内置类型名称的规则(C# 关键字或 CLR 类型名称)。 该规则可在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:内置类型引用

C/C++

为单条语句添加/移除大括号

Applies preferences for braces around single nested statements under the if statement and different kinds of loop statements. 这些规则可在 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上配置。

应用 'auto' 样式

根据 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上指定的规则,应用 auto 说明符在变量类型中的使用首选项。

应用函数声明样式(正则与尾随返回值类型)

根据 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上指定的规则,应用函数声明中尾随或常规返回类型的首选样式。

应用嵌套命名空间样式

应用用于加强对 C++17 语法规则的规则,以便更简洁地进行多级命名空间声明。 该规则可在 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上配置。

应用类型别名样式(typedef 与类型别名)

根据 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上指定的规则,定义类型同义词的首选方式。

排列 cv 限定符

应用 cv 修饰符优先顺序——决定 const 关键字应在其修饰的类型之前还是之后,以及 constvolatile 修饰符的优先顺序。 这些规则可在 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上配置。

排列 include 指令中的斜杠(正斜杠与反斜杠)

Applies the preferred style of path separator for #include directives as specified on the 代码编辑 | C++ | 语法样式 page of ReSharper 选项 Alt+R, O .

在重写函数上排列说明符('virtual' 和/或 'override')

应用覆盖函数的首选样式——指定覆盖函数和析构函数应使用哪些说明符。 这些规则可在 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上配置。

对 include 指令排序

应用 #include 指令的排序和重组规则。 所需的顺序可在 ReSharper 选项 的 代码编辑 | C++ | #include 的顺序 页面 Alt+R, O 上配置。 有关更多信息,请参阅 排序 include

对成员初始值设定项排序

根据 ReSharper 选项 的 代码编辑 | C++ | 语法样式 页面 Alt+R, O 上指定的构造函数初始化列表,应用成员初始化器的顺序。

XAML

收起空标记

如果标签体为空,则移除结束标签。

HTML

标准化特性值周围的引号

应用首选的引号样式:单引号 ' 或双引号 " ,可在 ReSharper 选项 的 代码编辑 | HTML | 语法样式 页面 Alt+R, O 上配置。

JavaScript/TypeScript

标准化字符串字面量周围的引号

应用首选的引号样式:单引号 ' 或双引号 " ,可在 ReSharper 选项 的 代码编辑 | JavaScript/TypeScript | 语法样式 页面 Alt+R, O 上配置。 有关更多信息,请参阅 引号样式

应用语句终止

在 JavaScript、TypeScript 和 JSON 的语句末尾添加可选分号

TypeScript specific

将 'public' 状态与代码样式同步

此选项允许您根据 ReSharper 选项 的 代码编辑 | TypeScript | 语法样式 页面 Alt+R, O 上配置的设置添加或移除显式的 'public' 修饰符。

根据需要添加显式 'any' 类型注解

此选项允许您根据 ReSharper 选项 的 代码编辑 | TypeScript | 语法样式 页面 Alt+R, O 上配置的设置添加显式的 'any' 注解到类型。

将类型注解状态与代码样式同步

此选项允许您根据 ReSharper 选项 的 代码编辑 | TypeScript | 语法样式 页面 Alt+R, O 上配置的设置强制显式/隐式类型规范。

根据需要修正 'require' 中的相对路径样式

应用 'require' 中的相对文件引用样式 代码样式偏好于 require 关键字中的相对路径。 例如, import X = require("file1")import X = require("./file1")。 您可以在 ReSharper 选项 的 代码编辑 | TypeScript | 语法样式 页面 Alt+R, O 上配置此偏好。

使用 'as' 代替类型断言

替换

var bar = <string> foo;

var bar = foo as string;

这是避免与 JSX 语法产生歧义的推荐方式。

优化 import

C#

优化 'using' 指令

  • 通过实现您可以在 ReSharper 选项 的 代码编辑 | C# | 命名空间导入 页面 Alt+R, O 上配置的规则,移除未使用的命名空间导入指令。

  • 根据 ReSharper 选项 的 代码编辑 | C# | 语法样式代码编辑 | 类型导入 页面上指定的规则,应用命名空间导入指令和完全限定名称的排列偏好。

  • 对命名空间导入指令进行排序:所有 System.* 命名空间首先按点后的第二个单词按字母顺序排序;所有其他命名空间接下来按字母顺序排列。 .

更多信息请参阅 代码语法样式:命名空间导入

在区域内包含 'using' 指令

如果选中此复选框,在清理期间会为所有命名空间导入指令创建一个新的区域。

区域名称

允许为包裹命名空间导入指令的区域指定名称。

缩短限定引用

通过导入命名空间,根据您可以在 ReSharper 选项 的 代码编辑 | C# | 语法样式 页面 Alt+R, O 上配置的偏好,将完全限定名称替换为短名称(如果可能)。

Visual Basic

优化 'import' 指令

  • 通过实现您可以在 ReSharper 选项 的 代码编辑 | Visual Basic | 命名空间导入 页面 Alt+R, O 上配置的规则,移除未使用的命名空间导入指令。

  • 根据 ReSharper 选项 的 代码编辑 | Visual Basic | 语法样式代码编辑 | 类型导入 页面上指定的规则,应用命名空间导入指令和完全限定名称的排列偏好。

  • 对命名空间导入指令进行排序:所有 System.* 命名空间首先按点后的第二个单词按字母顺序排序;所有其他命名空间接下来按字母顺序排列。 .

更多信息请参阅 代码语法样式:命名空间导入

在区域内包含 'using' 指令

如果选中此复选框,在清理期间会为所有命名空间导入指令创建一个新的区域。

区域名称

允许为包裹命名空间导入指令的区域指定名称。

缩短限定引用

通过导入命名空间,根据您可以在 ReSharper 选项 的 代码编辑 | Visual Basic | 语法样式 页面 Alt+R, O 上配置的偏好,将完全限定名称替换为短名称(如果可能)。

XAML

移除冗余命名空间别名

在清理范围内移除所有冗余的命名空间别名。 冗余别名也可以通过 代码检查检测到,并可以通过快速修复移除。

TypeScript specific

优化 'import' 语句

使用此选项根据 ReSharper 选项 的 代码编辑 | TypeScript | 语法样式 页面 Alt+R, O 上配置的设置移除冗余的 'import' 语句或完全限定名称。

优化引用注释

使用此选项移除冗余的引用注释。

ASP.NET

优化 @Register 指令

移除未使用的 @Register 指令。

重新排列代码

C#

应用文件布局

根据您可以在 ReSharper 选项 的 代码编辑 | C# | 文件布局 页面 Alt+R, O 上配置的规则,重新排列文件中的类型成员。 有关更多信息,请参阅 使用文件和类型布局模式重新排列成员

CSS

按字母顺序排列属性

按字母顺序重新排列 CSS 属性。

移除冗余并应用优化

C#

删除代码冗余

在 ReSharper 选项 的 代码检查 | 检查严重性 页面 Alt+R, O 中,在大多数语言的 代码中的冗余 类别中,ReSharper 列出了许多与代码检查相关的案例。 其中一些需要特别注意,您无法在批量模式下处理它们,但大多数可以在您在清理配置文件中选择 删除代码冗余 时自动修复。

如果可能,使用自动属性

将简单属性及其对应的后备字段替换为自动属性。 更多信息请参阅 使用自动属性

如果可能,将字段设为只读

为在声明或构造函数中分配并且仅具有读取用法的字段添加 readonly 关键字。 有关更多信息,请参阅 将字段设为只读

如果可能,将自动属性设为只获取

移除在构造函数/初始化器中初始化且没有写入用法的自动属性上的冗余 set 访问器。

默认情况下,ReSharper 会根据关联的编译器自动检测 C# 版本。 但是,您可以明确指定目标 C# 版本 用于某个项目——在解决方案资源管理器中右键单击项目,从上下文菜单中选择 编辑项目项属性 ,并使用 C# 语言级别 选择器。

要为 解决方案中的所有项目设置 C# 版本,请在解决方案目录中的 Directory.Build.props 文件中指定,如 此处所述。

C/C++

添加必需的 'typename' 和 'template' 关键字

添加缺失的 typenametemplate 关键字。

联接声明和赋值

在局部变量在被读取之前的所有路径中被重新赋值的情况下,将声明和赋值合并。

将局部变量设为 const

为可以变为不可变的局部作用域中的对象添加 const

如果可能,将成员函数设为 'const'

为不改变包含对象状态的成员函数添加 const

如果可能,将成员函数设为 'static'

使成员函数 static

移除冗余转换

移除冗余的强制转换表达式。

移除冗余的 'else' 关键字

移除在其上下文中冗余的 else 关键字。

移除冗余的详细类型说明符

当未用于声明新类或引用被更局部的非类型声明隐藏的先前声明的结构时,移除冗余的详细类型说明符。

移除冗余的 lambda 形参列表

在没有参数的 lambda 中移除冗余的 ()

移除冗余的成员初始值设定项

移除在构造函数中重复对应默认成员初始化器的成员初始化器。

移除冗余的括号

移除在其上下文中冗余的括号。

移除冗余限定符

移除在其上下文中冗余的限定符。

移除冗余说明符

移除在其上下文中冗余的说明符。

移除冗余语句

移除在其上下文中冗余的语句。

移除冗余模板实参

移除可以由语言根据 C++17 类模板参数推导规则推导出的冗余模板参数。

移除冗余的 'typename' 和 'template' 关键字

移除在其上下文中冗余的 typenametemplate 关键字。

移除无法访问的代码

移除永远不会执行的不必要代码。

移除未使用的 #include 指令

移除从未使用的 #include 指令。

移除未使用的 lambda 捕获

如果局部变量被 lambda 捕获但未在 lambda 主体中使用,则移除未使用的捕获。

将 C 样式和函数样式的转换替换为 static 转换

将 C 风格、 reinterpret_cast 以及函数风格的强制转换替换为 static_cast

将布尔上下文中的常量替换为布尔字面量

在布尔上下文中将整数常量替换为 true/false

将包含常量条件的 if 语句替换为 'if constexpr'

当条件是编译时常量表达式时,将 if 语句替换为 if constexpr

将后缀运算符替换为前缀变体

将后缀运算符替换为其前缀变体。

将智能指针构造函数替换为 make 函数

将智能指针构造函数替换为标准(make_unique/make_shared )或 Unreal 特定(MakeShared/MakeUnique )的智能指针创建函数。

在可能的情况下,将 throw 表达式替换为 rethrow

更新 throw 表达式以重新抛出无法由 catch 块处理的异常。

将类型特征替换为相应的模板别名或变量模板

使用 C++14 别名模板缩短 C++11 类型特性表达式。

将指针上下文中的零值表达式替换为 nullptr

在指针上下文中将零常量替换为 nullptr

用结构化绑定声明替换 'tie(..)'

std::tie()boost::tie() 用于解包元组或对的情况替换为结构化绑定声明。

在可能的情况下对关联容器使用 'contains'

findcount 替换为 C++20 contains 函数。

用 'std::erase'/'std::erase_if' 替换 remove-erase 惯用法

将旧的擦除-移除习惯用法替换为 C++20 std::erasestd::erase_if 库函数以从任何 STL 容器中删除元素。

Visual Basic

删除代码冗余

在 ReSharper 选项 的 代码检查 | 检查严重性 页面 Alt+R, O 中,在大多数语言的 代码中的冗余 类别中,ReSharper 列出了许多与代码检查相关的案例。 其中一些需要特别注意,您无法在批量模式下处理它们,但大多数可以在您在清理配置文件中选择 删除代码冗余 时自动修复。

XAML

移除冗余 'Freeze' 特性

移除在其上下文中冗余的 Freeze 属性。

移除冗余修饰符特性

移除在其上下文中冗余的 modifiers 属性。

移除冗余名称特性

移除在其上下文中冗余的 name 属性。

移除冗余资源

移除未使用的资源引用

移除冗余空集合属性 setter

移除冗余附加属性 setter

移除 attached 属性的未使用设置器。

移除冗余样式属性 setter

移除 style 属性的未使用设置器。

移除禁止的 name 特性

移除在其上下文中不允许的 name 属性。

移除冗余定义

如果定义在上下文中是冗余的,则移除它们。

移除冗余 UpdateSourceTrigger 特性

移除在其上下文中冗余的 UpdateSourceTrigger 属性。

移除冗余 Mode 特性

移除在其上下文中冗余的 Mode 属性。

移除冗余 span 特性

移除在其上下文中冗余的 span 属性。

JavaScript/TypeScript

在可能的情况下将 'var' 更正为 'let'/'const'

letconst 在以下情况下受支持:

  • 在 JavaScript 代码中,如果目标 JavaScript 语言级别是 ECMAScript 6(您可以在 ReSharper 选项 的 代码编辑 | JavaScript | 检查 页面 Alt+R, O 上选择它)

  • 在 TypeScript 1.4 中,如果在项目属性中选择了目标 ECMAScript 6。

  • 在 TypeScript 1.5 或更高版本中。

将 let/const 移动到最可能的内部作用域

将定义在函数/复合语句之外的变量等移动到更接近其使用的位置,如果在外部作用域中没有其他使用。

将字符串拼接转换为模板字符串

在 JavaScript 代码中,如果目标 JavaScript 语言级别是 ECMAScript 6(您可以在 ReSharper 选项 的 代码编辑 | JavaScript | 检查 页面 Alt+R, O 上选择它),以及在 TypeScript 1.4 或更高版本中,此选项会将字符串连接转换为 模板字符串。 例如:

var str1 = "Hello,"; var str2 = "Test: " + str1 + " World1";

将被转换为

const str1 = "Hello, "; const str2 = `Test: ${str1} World1`;

TypeScript specific

移除冗余限定符

使用此选项移除冗余的类型名称限定符。

C#

更新文件头

插入或更新您可以在 ReSharper 选项 的 代码编辑 | 文件头文本 页面 Alt+R, O 上或使用 file_header_template EditorConfig 属性配置的文件头注释。 有关更多信息,请参阅 文件头样式

C/C++

更新文件头

插入或更新您可以在 ReSharper 选项 的 代码编辑 | 文件头文本 页面 Alt+R, O 上或使用 file_header_template EditorConfig 属性配置的文件头注释。 有关更多信息,请参阅 文件头样式

运行外部清理工具

C/C++

应用 Clang-tidy 修复建议

在此节点中,您可以选择所有或特定的修复,这些修复将根据 Clang-Tidy 检查应用。

即使在 ReSharper 选项 的 代码检查 | 检查严重性 页面 Alt+R, O 上关闭了相应的检查,所选修复也会被应用。 启用过多检查时请小心——代码清理对给定文件仅运行一次 Clang-Tidy,因此如果多个修复影响同一代码块,可能会导致更改冲突。

最后修改日期: 2025年 9月 27日