代码检查:基类成员有 '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日