JetBrains Rider 2026.1 Help

コードインスペクション:基底メンバーには「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) { } }

クイックフィックス

2 つの即効性のある解決策があります。

  • オーバーライドパラメーターに params を追加します。

  • 可変引数の動作が意図したものでない場合は、基本メンバーから params を削除してください。

2026 年 6 月 12 日