JetBrains Rider 2026.1 Help

Code inspection: Base member has 'params' parameter, but the overrider does not have it

This inspection reports an override whose last parameter does not use params even though the corresponding base member does.

In C#, the params modifier is part of the method contract. If the base member accepts a variable number of arguments, the override should keep that behavior. Otherwise, callers can get inconsistent API semantics across the hierarchy.

Example

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) { } }

Quick-fix

Two quick-fixes are available:

  • Add params to the overriding parameter.

  • Remove params from the base member if the variable-argument behavior is not intended.

27 March 2026