代码检查:基类成员包含 'params' 参数,但重写者未包含该参数。
此检查会报告其最后一个参数未使用 params ,而相应基类成员使用了该参数的重写方法。
在 C# 中, params 修饰符是方法契约的一部分。 如果基类成员支持可变数量的参数,重写应保持该行为。 否则,调用者可能会在层次结构中遇到不一致的 API 语义。
示例
public class Base
{
public virtual void Log(params object[] values)
{
}
}
public class Derived : Base
{
public override void Log(object[] values)
{
}
}
public class Base
{
public virtual void Log(params object[] values)
{
}
}
public class Derived : Base
{
public override void Log(params object[] values)
{
}
}
快速修复
可用两种快速修复方法:
将
params添加到重写参数。如果不需要可变参数行为,请从基类成员中移除
params。
2026年 5月 8日