CA1025: 反復する引数を params 配列で置き換えます

TypeName

ReplaceRepetitiveArgumentsWithParamsArray

CheckId

CA1025

分類

Microsoft.Design

互換性に影響する変更点

なし

原因

パブリック型のパブリック メソッドまたはプロテクト メソッドに、4 つ以上のパラメーターがあり、最後の 3 つのパラメーターが同じ型です。

規則の説明

引数の正確な数が不明で、可変個の引数が同じ型である場合、または同じ型で渡すことができる場合、引数を繰り返すのではなく、パラメーター配列を使用します。たとえば、WriteLine メソッドには、パラメーター配列を使用して任意の数の Object 引数を受け入れる、汎用のオーバーロードがあります。

違反の修正方法

この規則違反を修正するには、繰り返しの引数をパラメーター配列で置換します。

警告を抑制する状況

この規則による警告を抑制しても常に安全ですが、このデザインのままでは操作性の問題が発生する可能性があります。

使用例

この規則に違反する型を次の例に示します。

using System;

namespace DesignLibrary
{
   public class BadRepeatArguments
   {
      // Violates rule: ReplaceRepetitiveArgumentsWithParamsArray. 
      public void VariableArguments(object obj1, object obj2, object obj3, object obj4) {}
      public void VariableArguments(object obj1, object obj2, object obj3, object obj4, object obj5) {}
   }

   public class GoodRepeatArguments
   {
       public void VariableArguments(object obj1) {}
       public void VariableArguments(object obj1, object obj2) {}
       public void VariableArguments(object obj1, object obj2, object obj3) {}
       public void VariableArguments(params Object[] arg) {}
   }
}