代码检查
JetBrains Rider 提供了超过 2500 项代码检查,支持所有语言。 这些检查用于检测并 在设计时突出显示代码问题 ,适用于所有已打开的文件,和/或 在特定范围内查找所有代码问题 ,该范围可以大到整个解决方案。
要了解 JetBrains Rider 提供的代码检查类型,请查看 JetBrains Rider 不同语言的完整代码检查列表。
代码检查可以分为以下几组:
具有固定 严重性级别“错误”的检查。 这些检查会检测编译器错误,无法禁用或配置它们。
具有可配置 严重性级别的检查,这些检查会检测其余的代码问题(例如,编译器警告、运行时和逻辑错误、代码异味、冗余、改进建议等)。 您可以在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 上找到这些可配置的检查。 这些检查可以通过多种方式 进行配置——您可以通过注释和属性抑制检测到的问题, 在设置中或在 .editorconfig 文件中禁用它们或更改其严重性级别。
代码检查的严重性级别
每个 JetBrains Rider 代码检查都有以下严重性级别之一:
错误
具有此严重性级别的代码检查针对的是阻止代码编译或导致运行时错误的问题。 这些检查中的大多数是不可配置的,也就是说,您无法禁用它们或更改其严重性级别。
在设计时代码检查中,JetBrains Rider 会以红色显示未解析的符号:
![]()
并用红色波浪下划线突出显示错误语句或其部分内容:

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

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

如果当前文件中至少有一个警告,状态指示器会显示 警告
图标,并在 错误标记 上为每个警告显示黄色标记。
建议
具有此严重性级别的代码问题提供了对代码结构的见解,吸引您的注意力到不一定是坏的或错误的,但可能有用的信息。
在设计时代码检查中,JetBrains Rider 会用绿色波浪下划线突出显示建议:

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

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