CA1801:检查未使用的参数
类型名 |
ReviewUnusedParameters |
CheckId |
CA1801 |
类别 |
Microsoft.Usage |
是否重大更改 |
否 - 如果无论您做出什么更改,成员在程序集外部不可见。 否 - 如果您更改成员以在其成员体内使用参数。 是 - 如果您移除参数,并且此参数在程序集外可见。 |
原因
方法签名包含一个没有在方法体中使用的参数。 此规则不检查下面的方法:
由委托引用的方法。
用作事件处理程序的方法。
用 abstract(在 Visual Basic 中为 MustOverride)修饰符声明的方法。
用 virtual(在 Visual Basic 中为 Overridable)修饰符声明的方法。
用 override(在 Visual Basic 中为 Overrides)修饰符声明的方法。
用 extern(在 Visual Basic 中为 Declare 语句)修饰符声明的方法。
规则说明
检查非虚方法中没有在方法体中使用的参数,以确保不存在应该访问这些参数的情况。 未使用的参数会产生维护和性能开销。
有时,与该规则冲突可能说明方法中存在实现 Bug。 例如,应在方法体中使用相应参数。 如果为了保持向后兼容性,该参数必须存在,则可以禁止显示与该规则有关的警告。
如何解决冲突
要修复与该规则的冲突,请移除未使用的参数(重大更改)或在方法体中使用该参数(非重大更改)。
何时禁止显示警告
对于以前发布的代码,如果所做修复属于重大更改,则可以安全地禁止显示此规则发出的警告。
示例
下面的示例演示了两个方法。 其中的一个方法与规则冲突,另一个方法符合规则。
using System;
using System.Globalization;
namespace Samples
{
public static class TestClass
{
// This method violates the rule.
public static string GetSomething(int first, int second)
{
return first.ToString(CultureInfo.InvariantCulture);
}
// This method satisfies the rule.
public static string GetSomethingElse(int first)
{
return first.ToString(CultureInfo.InvariantCulture);
}
}
}