Поделиться через


CA1025: замените повторяющиеся аргументы массивом параметров

TypeName

ReplaceRepetitiveArgumentsWithParamsArray

CheckId

CA1025

Категория

Microsoft.Design

Критическое изменение

Не критическое

Причина

Открытый или защищенный метод в открытом типе содержит более трех параметров, и последние три параметра принадлежат одному типу.

Описание правила

Если точное число аргументов неизвестно и эти аргументы принадлежат одному типу или могут быть переданы как один тип, используйте вместо переменного числа повторяющихся аргументов массив параметров. Например, метод 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) {}
   }
}