代码检查
ReSharper 提供了超过 2500 项代码检查,支持所有语言。 这些检查用于检测并 在设计时突出显示代码问题 ,适用于所有打开的文件,和/或用于查找 特定范围内的所有代码问题,该范围可以大到整个解决方案。
要了解 ReSharper 提供的代码检查类型,请查看 ReSharper 代码检查的完整列表 ,支持不同的语言。
代码检查可以分为以下几组:
ReSharper 自身的代码检查包括:
自定义代码检查定义为 结构化搜索和替换模式 ,这些检查也具有可配置的严重性级别。
代码检查的严重性级别
每个 ReSharper 代码检查以及 结构化搜索和替换模式都具有以下严重性级别之一:
错误
具有此严重性级别的代码检查针对的是阻止代码编译或导致运行时错误的问题。 大多数此类检查是不可配置的,也就是说,您无法禁用它们或更改其严重性级别。
在设计时代码检查中,ReSharper 会以红色显示未解析的符号:
![]()
并用红色波浪下划线突出显示错误语句或其部分内容:

如果当前文件中至少有一个错误, 状态指示器会显示 错误
图标,并在 标记栏上为每个错误显示红色标记。
通过具有“错误”严重性级别的检查发现的代码问题会出现在解决方案中的错误/警告窗口中(如果 解决方案范围分析 已启用)。
警告
此严重性级别对应于编译器警告以及其他不会阻止代码编译但可能仍然代表严重编码低效的问题。 例如,ReSharper 会通知您关于冗余类型转换或命名空间导入指令、不正确的格式字符串、声明但从未使用的局部变量或私有字段、未使用的私有方法等问题。
在设计时代码检查中,ReSharper 会以灰色文本显示冗余符号:

并用蓝色波浪下划线突出显示语句或其部分内容:

如果当前文件中至少有一个警告,状态指示器会显示 警告
图标,并在 标记栏 上为每个警告显示黄色标记。
警告也会出现在解决方案中的错误/警告窗口中(如果 解决方案范围分析 启用了警告)。
建议
具有此严重性级别的代码问题提供了对代码结构的洞察力,吸引您的注意力到那些不一定是错误或问题,但可能有用的信息。
在设计时代码检查中,ReSharper 会用绿色波浪下划线突出显示建议:

并在 标记栏 上为每个警告添加绿色标记。
提示
这是最低的严重性级别。 具有此严重性级别的代码问题会引起您对特定代码细节的注意,并/或推荐一种改进方法。
在设计时代码检查中,ReSharper 会通过在相应符号的前两个字母下添加虚线绿色下划线来突出显示提示:

与错误、警告和建议不同,提示在您 在编辑器中导航代码问题时不会被考虑,也不会显示在 标记栏 中。
请注意,当您将光标放在突出显示的提示上时,不会显示弹出窗口,相应的消息仅会出现在状态栏中。
当您 在特定范围内检查代码时,ReSharper 会为检测到的问题添加相应的图标,并允许在 检查结果窗口 中按严重性级别对问题进行排序。
代码检查的类别
ReSharper 按多个类别对可配置代码检查进行分组。 这些类别大致定义了检查的目的和它们检测的代码问题类型。 这些类别用于在 ReSharper 选项 的 页面 Alt+R, O 上对代码检查进行分组,以及对在特定范围内发现并显示在 检查结果窗口 中的代码问题进行分组。
- 潜在的代码质量问题
此类别包括检测关键问题(代码异味)的检查,主要具有 错误 或 警告 级别。 此类别还包括 确保本地化支持的检查。
- 常见做法和代码改进
此类别分组了查找中等严重性问题的检查,这些问题主要影响代码的可读性。
- 代码中的冗余
此类别中的代码检查查找冗余和无用代码,这些代码会影响代码的可读性和风格,并且可以安全地移除。 某些代码冗余无法自动修复,其快速修复需要在交互模式下进行,需用户输入。 但大多数冗余可以在无需用户交互的情况下修复,使用 范围内修复 或 代码清理。
- 语言使用机会
此类别包括代码检查,主要具有 建议 严重性级别,通知您可以使用更高级的语言结构。 这些检查会检测过时语言版本的语法,并建议使用更现代语言版本的功能。 对于大多数支持的语言,语言版本 可以自动检测或手动设置。
- 代码通知
此类别分组了严重性级别较低的代码检查。
- 代码样式
此类别中的检查检测 代码语法风格 的违规行为。 与大多数代码检查不同,这些检查是否将相同的代码结构检测为代码问题取决于在 ReSharper 选项 的 页面上配置的相应代码风格规则 Alt+R, O 。 您还可以使用 代码清理 修复这些检查检测到的问题。
- 约束违规
此类别包括代码检查,主要具有 警告严重性级别,用于检测与符号属性相关的违规行为,包括 ReSharper 的代码注解及其他类似问题。
- 符号声明中的冗余
此类别包括代码检查,主要具有 警告 严重性级别,用于检测空的和未使用的符号声明。
- 编译器警告
此类别中的检查可在编译之前检测到 compiler warnings。
- 拼写问题
这些检查 检测各种上下文中的拼写错误。
- NUnit
这些检查会检测与 NUnit 测试相关的代码问题。
- Xunit
这些检查会检测与 xUnit.Net 测试相关的代码问题。
- 格式设置
此类别中的检查 检测代码格式问题。
- Clang-Tidy 检查
此类别中的检查由 Clang-Tidy 提供——一个功能强大的开源代码分析工具, 集成到 ReSharper 中。
- Clang
此类别中的检查对应于 Clang 编译器警告, 集成到 ReSharper 中。
- Clang Static Analyzer 检查
此类别中的检查是来自 Clang 静态分析器的诊断, 集成到 ReSharper 中。
默认情况下,所有静态分析器检查均被禁用,因为启用它们会显著降低 Clang-Tidy 的速度。
- Unreal Engine
此类别中的检查特定于 Unreal Engine项目。
- Unreal 构建系统
此类别中的检查特定于 Unreal Engine项目。
- Unity
此类别中的检查报告特定于 Unity 项目的代码问题。
- Unity Burst 编译器警告
此类别中的检查在代码实际编译之前报告 Unity Burst 编译器的警告。
- Unity 性能检查
此类别中的检查报告 Unity 项目中的计算效率低下的模式。
可配置代码检查的标识符
每个可配置的代码检查都有两个可用于配置的唯一标识符。 以 可能的 'System.NullReferenceException' 检查为例:
- 检查 ID
用于通过注释 抑制单个问题的检查:
// ReSharper disable once PossibleNullReferenceException或从注释到文件末尾:
// ReSharper disable PossibleNullReferenceException或者,使用适用于类型或方法的属性:
[SuppressMessage("ReSharper", "PossibleNullReferenceException")]。
- 检查 EditorConfig 属性
可用于从 .editorconfig 文件配置检查。 例如,您可以使用以下行将检查的严重性级别更改为 错误:
resharper_possible_null_reference_exception_highlighting=error
您可以在 代码检查索引 中找到每个可配置检查的标识符——只需选择一个语言页面,然后使用浏览器搜索找到所需检查的详细信息。