ReSharper 2025.2 Help

代码检查:未使用的参数(非私有可访问性)

此检查报告在接口、抽象或虚方法中声明但未在方法本身或继承自该方法的任何方法中使用的参数。

未使用的参数的存在可能会误导其他开发人员。 这也可能表明参数本应被使用但被无意中忽略的错误,可能导致应用程序中的意外行为或漏洞。

在以下示例中, ITestable 接口的用户可能不会检查 PrintString 方法的实现,因为其名称和签名看起来不言自明——他们会期望它打印由参数传递的字符串。 因此,该方法可能打印一个常量字符串的事实可能是意外行为。

public interface ITestable { public void PrintString(string str){} } public class Testable : ITestable { public void PrintString(string str) { Console.WriteLine("Hello world"); } } public class Test { public Test(ITestable sample) { sample.PrintString("test this"); } }

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

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

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

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

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

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

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

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