ReSharper 2025.2 Help

解决方案范围的代码检查

大多数 ReSharper 的 代码检查 只需要单个文件的源代码即可检测代码问题。 除了这些检查之外,ReSharper 还提供了解决方案范围的检查,用于检测仅在整个解决方案范围内可检测的代码问题。例如,要检测未使用的非私有成员,ReSharper 需要分析整个解决方案。

要使解决方案范围的检查生效,您需要启用以下至少一项:

  • 简化的全局使用检查:在 ReSharper 选项 Alt+R, O 代码检查 | 设置 页面上选择 当解决方案范围分析关闭时,显示未使用的非私有类型成员

  • 解决方案范围分析 :在 ReSharper 选项 的 代码检查 | 设置 页面上选择 启用解决方案级分析(_A) Alt+R, O

请注意,即使报告的符号在您的解决方案中没有直接使用,也可能存在间接使用的情况——例如,通过反射——或者它可能只是设计为公共 API。 在所有这些情况下,您可能希望通过以下方式之一 抑制 符号的使用检查:

  • 推荐的方法是使用 代码注解属性 装饰隐式使用的符号。 为此目的有两个属性: [UsedImplicitly][PublicAPI] ,它们在功能上相似,但可以让您和您的团队成员了解符号的实际使用方式。

  • 您还可以使用任何自定义属性抑制使用检查。 为此,请使用 [MeansImplicitUse]属性标记该属性的定义。

  • 最后,您可以像对待任何其他代码检查一样,通过 抑制注释或抑制属性来抑制特定的使用检查。

与任何其他检查类似,您还可以 禁用更改严重性级别 任何解决方案范围的检查。 这可以直接在检查突出显示的代码问题的 Alt+Enter 菜单中完成。 Alternatively, you can disable/enable or change severity levels of inspections on the 代码检查 | 检查严重性 page of ReSharper 选项 Alt+R, O — solution-wide inspections are marked with the 非私有可访问性 label. 请注意,您无法为解决方案范围的检查设置“错误”严重性。

当启用解决方案范围分析时,解决方案范围检查检测到的问题会像其他问题一样在打开的文件中 高亮显示 ,并且它们也会出现在 检查结果窗口 中,当您 在特定范围内运行代码检查 时。 然而,它们不会出现在“解决方案中的错误/警告”窗口中。

如果需要,您可以禁用解决方案范围的检查,或者仅对 特定项目 的内部符号启用解决方案范围的检查。 为此,请使用 解决方案级检查 选择器,该选择器位于 项目条目属性 弹出窗口中,您可以通过从解决方案资源管理器中项目的上下文菜单中选择 编辑项目项属性 调出该弹出窗口。

请注意,无论此选择器中的值如何,如果在 ReSharper 选项中禁用了解决方案范围分析,则解决方案范围的检查将被禁用。

ReSharper 提供以下解决方案范围的检查:

检查

语言

默认严重性

自动属性可以设为仅 get(非私有可访问性)

C#

建议

类可以设为密封(不可继承)(非私有可访问性)

C#

已禁用

局部变量或字段可以转换为常量(非私有可访问性)

C#

提示

字段可以设为只读(非私有可访问性)

C#

建议

成员可以设为私有(非私有可访问性)

C#

建议

成员可以设为受保护(非私有可访问性)

C#

建议

成员可以设为静态(共享)(非私有可访问性)

C#

提示

参数类型可以为 IEnumerable<T>(非私有可访问性)

C#

已禁用

属性可以设为仅 init(非私有可访问性)

C#

建议

返回类型可以为 IEnumerable<T>(非私有可访问性)

C#

已禁用

结构体缺少 'IEquatable' 实现(非私有可访问性)

C#

警告

使用了具有默认相等成员的结构体进行比较(非私有可访问性)

C#

警告

在记录中使用了具有可疑相等性的类型(非私有可访问性)

C#

警告

引入可选参数(非私有可访问性)

C#

建议

抽象或虚拟(可重写)事件从未被调用

C#

建议

自动属性访问器从未被使用(非私有可访问性)

C#

警告

类从未被实例化(非私有可访问性)

C#

建议

集合内容从未被查询(非私有可访问性)

C#

警告

集合从未被更新(非私有可访问性)

C#

警告

CQRS 上下文交叉。 Command 从 Query 上下文中调用。 (show on declarations)

C#

警告

CQRS 上下文交叉。 Command 从 Query 上下文中调用。 (show on usages)

C#

警告

CQRS 上下文交叉。 Query 从 Command 上下文中调用。 (show on declarations)

C#

警告

CQRS 上下文交叉。 Query 从 Command 上下文中调用。 (show on usages)

C#

警告

事件从未被订阅(非私有可访问性)

C#

建议

方法在两个 CQRS 上下文中均被调用(在声明处显示)

C#

警告

方法在两个 CQRS 上下文中均被调用(在用法处显示)

C#

警告

未访问的字段(非私有可访问性)

C#

建议

未访问的位置属性(非私有可访问性)

C#

警告

可疑的类型转换或检查

C#

警告

未分配的字段(非私有可访问性)

C#

建议

冗余的全局 using 指令

C#

警告

具有虚拟(可重写)成员的类从未被继承(非私有可访问性)

C#

建议

实体仅用于捕获其名称(非私有可访问性)

C#

警告

方法返回值从未被使用(非私有可访问性)

C#

建议

参数仅用于前置条件检查(非私有可访问性)

C#

建议

参数输出值始终被丢弃(非私有可访问性)

C#

建议

冗余的方法重载(非私有可访问性)

C#

建议

类型从未被使用(非私有可访问性)

C#

建议

类型成员从未通过基类型访问(非私有可访问性)

C#

建议

类型成员从未被使用(非私有可访问性)

C#

建议

类型成员仅在重写中使用(非私有可访问性)

C#

建议

未使用的参数(非私有可访问性)

C#

建议

虚拟(可重写)成员从未被重写(非私有可访问性)

C#

建议

自动属性可以设为仅 get(非私有可访问性)

VB.NET

建议

类可以设为密封(不可继承)(非私有可访问性)

VB.NET

已禁用

局部变量或字段可以转换为常量(非私有可访问性)

VB.NET

提示

字段可以设为只读(非私有可访问性)

VB.NET

建议

成员可以设为私有(非私有可访问性)

VB.NET

建议

成员可以设为受保护(非私有可访问性)

VB.NET

建议

成员可以设为静态(共享)(非私有可访问性)

VB.NET

提示

参数类型可以为 IEnumerable<T>(非私有可访问性)

VB.NET

已禁用

属性可以设为仅 init(非私有可访问性)

VB.NET

建议

返回类型可以为 IEnumerable<T>(非私有可访问性)

VB.NET

已禁用

结构体缺少 'IEquatable' 实现(非私有可访问性)

VB.NET

警告

使用了具有默认相等成员的结构体进行比较(非私有可访问性)

VB.NET

警告

在记录中使用了具有可疑相等性的类型(非私有可访问性)

VB.NET

警告

抽象或虚拟(可重写)事件从未被调用

VB.NET

建议

自动属性访问器从未被使用(非私有可访问性)

VB.NET

警告

类从未被实例化(非私有可访问性)

VB.NET

建议

集合内容从未被查询(非私有可访问性)

VB.NET

警告

集合从未被更新(非私有可访问性)

VB.NET

警告

事件从未被订阅(非私有可访问性)

VB.NET

建议

未访问的字段(非私有可访问性)

VB.NET

建议

未访问的位置属性(非私有可访问性)

VB.NET

警告

可疑的类型转换或检查

VB.NET

警告

未分配的字段(非私有可访问性)

VB.NET

建议

具有虚拟(可重写)成员的类从未被继承(非私有可访问性)

VB.NET

建议

实体仅用于捕获其名称(非私有可访问性)

VB.NET

警告

方法返回值从未被使用(非私有可访问性)

VB.NET

建议

参数仅用于前置条件检查(非私有可访问性)

VB.NET

建议

参数输出值始终被丢弃(非私有可访问性)

VB.NET

建议

类型从未被使用(非私有可访问性)

VB.NET

建议

类型成员从未通过基类型访问(非私有可访问性)

VB.NET

建议

类型成员从未被使用(非私有可访问性)

VB.NET

建议

类型成员仅在重写中使用(非私有可访问性)

VB.NET

建议

未使用的参数(非私有可访问性)

VB.NET

建议

虚拟(可重写)成员从未被重写(非私有可访问性)

VB.NET

建议

类型从未被使用(非私有可访问性)

JavaScript

建议

类型成员从未被使用(非私有可访问性)

JavaScript

建议

未访问的字段(非私有可访问性)

ASP.NET

建议

类型成员从未被使用(非私有可访问性)

ASP.NET

建议

成员可以设为私有(非私有可访问性)

XAML

建议

成员可以设为受保护(非私有可访问性)

XAML

建议

未访问的字段(非私有可访问性)

XAML

建议

类型从未被使用(非私有可访问性)

XAML

建议

类型成员从未被使用(非私有可访问性)

XAML

建议

未访问的字段(非私有可访问性)

HttpHandler or WebService

建议

类型成员从未被使用(非私有可访问性)

HttpHandler or WebService

建议

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