解决方案范围的代码检查
大多数 ReSharper 的 代码检查 只需要单个文件的源代码即可检测代码问题。 除了这些检查之外,ReSharper 还提供了解决方案范围的检查,用于检测仅在整个解决方案范围内可检测的代码问题。例如,要检测未使用的非私有成员,ReSharper 需要分析整个解决方案。
要使解决方案范围的检查生效,您需要启用以下至少一项:
简化的全局使用检查:在 ReSharper 选项 Alt+R, O 的 页面上选择 当解决方案范围分析关闭时,显示未使用的非 private 类型成员。
解决方案范围分析 :在 ReSharper 选项 的 页面上选择 启用解决方案级分析(_A) Alt+R, O 。
请注意,即使报告的符号在您的解决方案中没有直接使用,也可能存在间接使用的情况——例如,通过反射——或者它可能只是设计为公共 API。 在所有这些情况下,您可能希望通过以下方式之一 抑制符号的使用检查:
推荐的方法是使用 代码注解属性装饰隐式使用的符号。 为此有两个属性: [UsedImplicitly] 和 [PublicAPI] ,它们在功能上相似,但可以让您和您的团队成员了解符号的实际使用方式。
您还可以使用任何自定义属性来抑制用法检查。 为此,请用 [MeansImplicitUse]属性标记该属性的定义。
最后,您可以像处理其他代码检查一样,通过 抑制注释或抑制属性来抑制特定的使用检查。
与任何其他检查类似,您还可以 禁用 或 更改严重性级别 任何解决方案范围的检查。 这可以直接在检查突出显示的代码问题的 Alt+Enter 菜单中完成。 或者,您也可以在 ReSharper 选项 的 页面上禁用/启用或更改检查的严重性级别 Alt+R, O ,解决方案范围的检查带有 非私有可访问性 标签。 请注意,您无法为解决方案范围的检查设置“错误”严重性。
当启用解决方案范围分析时,解决方案范围检查检测到的问题会像其他问题一样在打开的文件中 高亮显示 ,并且它们也会出现在 检查结果窗口 中,当您 在特定范围内运行代码检查 时。 然而,它们不会出现在“解决方案中的错误/警告”窗口中。
如果需要,您可以禁用解决方案范围的检查,或者仅对 特定项目 的内部符号启用解决方案范围的检查。 为此,请使用 解决方案级检查 选择器,该选择器位于 项目条目属性 弹出窗口中,您可以通过从解决方案资源管理器中项目的上下文菜单中选择 编辑项目项属性 调出该弹出窗口。
请注意,无论此选择器中的值如何,如果在 ReSharper 选项中禁用了解决方案范围分析,则解决方案范围的检查将被禁用。
ReSharper 提供以下解决方案范围的检查:
检查 | 语言 | 默认严重性 |
|---|---|---|
C# | ||
类可以设为密封(不可继承)(非私有可访问性) | C# | |
局部变量或字段可以转换为常量(非私有可访问性) | C# | |
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
抽象或虚拟(可重写)事件从未被调用 | C# | |
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
C# | ||
实体仅用于捕获其名称(非私有可访问性) | C# | |
C# | ||
参数仅用于前置条件检查(非私有可访问性) | C# | |
C# | ||
冗余的方法重载(非私有可访问性) | C# | |
C# | ||
C# | ||
C# | ||
类型成员仅在重写中使用(非私有可访问性) | C# | |
C# | ||
C# | ||
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 | ||
实体仅用于捕获其名称(非私有可访问性) | 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 |