ReSharper 2025.2 Help

配置文件

ReSharper 选项:代码编辑 | 代码清理 | 配置文件

此 ReSharper 选项页面允许您管理和配置 自定义清理配置文件 ,并为 静默代码清理分配清理配置文件。 这里还显示了两个默认配置文件(完全清理重新格式化并应用语法样式重新格式化代码)。 您无法修改它们,但可以克隆它们以创建新的自定义配置文件。

工具栏控件

使用以下控件配置选定的清理配置文件:

ThemedIcon.CodeCleanupOptionPage.Screen.(Gray).png设为默认

单击此按钮以将选定的配置文件用于 静默清理。 用于静默清理的配置文件会标记为 ThemedIcon.CodeCleanupOptionPage.Screen.(Gray).png 图标。

ThemedIcon.Duplicate.Screen.(Gray).png重复

单击此按钮以创建选定配置文件的副本。 如果您有默认设置,您需要复制一个 默认清理配置文件以创建自定义清理配置文件。 一旦创建了新配置文件,它会以编辑模式打开,您可以在其中配置 清理任务列表。

ThemedIcon.Behaivior.Screen.(Gray).png配置

单击此按钮以启用选定自定义配置文件的编辑模式。 请注意,默认配置文件(完全清理重新格式化并应用语法样式重新格式化代码 )无法编辑。

ThemedIcon.Edit.Screen.(Gray).png重命名

单击此按钮以重命名选定的自定义配置文件。 请注意,默认配置文件(完全清理重新格式化并应用语法样式重新格式化代码 )无法重命名。

ThemedIcon.Remove.Screen.(Gray).png删除

单击此按钮以移除选定的自定义配置文件。 请注意,默认配置文件(完全清理重新格式化并应用语法样式重新格式化代码 )无法移除。

ThemedIcon.Success.Screen.(Gray).png完成

单击此按钮以退出编辑模式并返回到选定配置文件的预览。 请注意,除非您单击 保存 ,否则您的修改不会被应用。

选定配置文件的代码清理任务

当您为选定的 自定义清理配置文件切换到编辑模式(ThemedIcon.Behaivior.Screen.(Gray).png配置 )时,这些任务变得可配置。 最初,没有自定义配置文件,并且默认配置文件的任务无法编辑。 您可以单击 ThemedIcon.Duplicate.Screen.(Gray).png重复 创建一个默认配置文件的可编辑副本,然后编辑其任务。

重新设置代码格式

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' 运算符查空表达式的首选方式(与 非 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 属性。

移除冗余修饰符特性

移除在其上下文中冗余的 修饰符 属性。

移除冗余名称特性

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

移除冗余资源

移除未使用的资源引用

移除冗余空集合属性 setter

移除冗余附加属性 setter

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

移除冗余样式属性 setter

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

移除禁止的 name 特性

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

移除冗余定义

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

移除冗余 UpdateSourceTrigger 特性

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

移除冗余 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日