ReSharper 2025.2 Help

设置

ReSharper 选项:代码检查 | 设置

在此 ReSharper 选项 页面中,您可以指定 代码检查 的偏好设置。

启用代码分析

选中此复选框以启用 设计时代码检查

无论此复选框是否选中,您始终可以 在特定范围内运行代码检查

分析

从 editorconfig 和项目设置中读取设置

如果您 使用 EditorConfig 来维护项目的代码样式,您还可以从 .editorconfig 文件中配置代码检查。

如果启用了此复选框,您可以直接从 .editorconfig 文件中 配置 代码检查严重性级别C# 命名样式

启用解决方案级分析(_A)

启用 解决方案范围分析 (包括 解决方案范围的代码检查 ),默认情况下此功能是禁用的。

请注意,在大型解决方案中,解决方案范围的分析可能会导致性能下降。 不过,有几种方法可以 提高解决方案范围分析的性能

启用计算量大的检查

启用数据流分析并带来额外的检查,例如计算可空性。

监视警告

解决方案范围分析 中启用警告。

当在解决方案范围分析中启用警告时,其工作方式如下:只要解决方案中存在错误,就只会显示错误;只有在最后一个错误被修复后,未解决的警告才会出现。 当警告被禁用时,状态栏指示器将在最后一个错误被修复后变为绿色。

启用此选项后,您可以单击 Errors/Warnings in Solution 窗口工具栏上的 ThemedIcon.Warning.Screen.(Gray).png ,以在窗口和状态栏指示器中显示或隐藏警告,而无需重新启动分析。

包括源生成的文件

使用此复选框选择是否监视 源生成文件

资源利用率

使用此选择器定义解决方案范围分析应如何使用系统资源。 表示资源使用较低,但分析时间较长。 表示在多核机器上初始分析所需时间较少。

当解决方案范围分析关闭时,显示未使用的非私有类型成员

启用此选项后,即使 解决方案范围分析 被禁用,ReSharper 也会检测所有未使用的非私有成员。 此选项对小型和中型解决方案没有显著的性能影响。

但是,如果您在大型解决方案中或处理非常大的源文件时遇到性能问题,您可能需要禁用它。

当解决方案范围的分析关闭时,显示未使用的全局 using 指令

启用此选项后,即使 解决方案范围分析 被禁用,ReSharper 也会报告所有引用未使用命名空间的 global using 指令。 此选项对小型和中型解决方案没有显著的性能影响。

但是,如果您在大型解决方案中遇到性能问题,您可能需要禁用它。

值分析模式

通过使用 值分析 ,ReSharper 找出哪些实体可以持有 null 值,并高亮显示可能的空引用错误。 您可以选择以下模式之一。

  • 乐观:当显式标记为 [CanBeNull] 属性或检查是否为 null 时 — ReSharper 假设只有明确标记为 CanBeNullItemCanBeNull 属性或明确检查是否为 null 的实体可以为 null。

  • 悲观: 当实体没有显式 [NotNull] 特性时 — ReSharper 假设所有没有明确 NotNullItemNotNull 属性的可空实体都可以为 null。

可空引用类型的警告模式

如果启用了 可空引用类型(NRT) ,ReSharper 会重用 C# 编译器分析的结果。

NRT 提高了空值分析的整体精确性,但在某些情况下,NRT 合约可能会被违反,例如,当值来自没有 #nullable 上下文的代码时。 在这些情况下,您可能会收到可空性检查的误报警告(例如, 表达式始终为 'true' 或 'false')。 您可以选择忽略可空 API 合约,仅在代码中对值的先前操作保证其可以或不可以为空时报告问题。

更多信息请参阅 可空引用类型

处置分析模式

选择 处置分析 的模式之一。

当您通过 [MustDisposeResource] API 接收一个对象时,如果您将相应的变量包装在 using 中或显式调用该变量上的 Dispose() ,ReSharper 将始终认为它已被释放,并且不会发出警告。

如果您将可释放变量作为参数传递给方法,ReSharper 将根据分析模式发出警告:

  • 乐观 (默认):所有接受 IDisposable 或派生类型的方法都被认为是安全的;也就是说,我们假设它们会在处理对象后调用 Dispose()

  • 悲观 :只有当接受 IDisposable 的参数被标记为 [HandlesResourceDisposal] 属性时,方法才被认为是安全的。 否则,ReSharper 将报告未释放的变量。

分析整数算术

使用此复选框启用或禁用 整数值分析(整数运算)

优化增量分析

打开后,完整文件重新高亮显示会跟踪检查了哪些成员,并且如果修改仅更改文件中的其他成员,则不会重新分析它们

突出显示

颜色标识符

此选项允许您启用或禁用 ReSharper 的 语法高亮方案。

如果选中,语言标识符将根据 Visual Studio 选项中定义的颜色进行高亮显示: 工具 | 选项 | 环境 | 字体和颜色

ReSharper 提供的语法标识符列表可在 显示项 列表中找到,每个名称都以 ReSharper前缀开头。

请注意,禁用此选项也会禁用鼠标悬停时出现的符号信息工具提示。

高亮显示颜色用法

启用代码中颜色定义的高亮显示。 更多信息请参阅 颜色辅助

高亮显示字符串字面量中的特殊字符

启用非逐字字符串中正确和错误转义序列的高亮显示。 例如: 字符串中转义序列的高亮显示 有关更多信息,请参阅 正则表达式辅助功能

高亮显示捕获的主形参

启用此选项后,ReSharper 会更改 主构造函数参数的语法高亮显示,这些参数用于实例成员中。 这些参数会被捕获到实例上下文中,并表现得像实例字段;因此,将它们语法高亮显示为字段是很方便的。

在下面的示例中, firstName 参数用于初始化 属性,但它没有被捕获,因为编译器会为 创建一个后备字段,并将构造函数参数复制到那里。

lastName 另一方面将被保留为字段,以便在访问 属性时返回其值。 因此,ReSharper 将 firstName 高亮显示为普通参数,而将 lastName 高亮显示为字段:

ReSharper:主构造函数中捕获参数的语法高亮显示

文本光标依赖高亮显示

突出显示光标下元素的用法

默认情况下,当您将光标放在变量或成员的声明或用法上时,文件中该符号的所有其他用法都会以背景高亮显示。 使用此复选框切换此行为。

高亮显示上下文退出

此选项默认启用,指示 ReSharper 高亮显示控制流可以退出当前上下文的所有位置。 例如,对于方法,它会高亮显示方法的返回类型,所有 returnthrow 关键字等,当您将光标放在这些标识符之一上时。

ReSharper 高亮显示上下文退出点

对于循环或 switch 语句,它还会高亮显示循环关键字以及其中的所有 break 语句。

请注意,如果方法在编辑器中未完全可见,您可以在方法名称上调用 导航到:函数出口 命令以触发另一种高亮显示,这种高亮显示在光标离开方法名称时不会消失。

高亮显示相关的 async/await 关键字

此选项启用函数中所有 asyncawait 关键字的高亮显示 当您的光标位于其中一个关键字上时

高亮显示条件元素

此选项启用匹配逻辑和条件运算符(|||&&& ,以及 对)的高亮显示,这些运算符在复杂表达式中协同工作,当您的光标位于其中一个运算符上时。

在下面的示例中,%product 帮助理解高亮显示的运算符将一起被评估,而 value1 > 1 || value2 >= 2 && condition1 部分将首先被评估, || value6 %lt; value7 || condition2 部分将随后被评估,这符合 运算符优先级

ReSharper:高亮显示匹配的逻辑运算符

快速修复和上下文操作

在作用域内应用修正/操作时使用并行代码分析

选择此选项后,ReSharper 使用所有可用的 CPU 并行执行代码分析,当在 超过 10 个文件的范围内应用快速修复和上下文操作时。

在作用域内应用快速修复时,利用解决方案级分析结果

启用此选项后,ReSharper 使用 解决方案范围分析的结果来加速应用 范围内的快速修复。 此机制仅在此选项页面上的 启用解决方案级分析(_A)监视警告 复选框启用时才会工作。

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