CA1025: Substitua a matriz params de argumentos repetitivos

TypeName

ReplaceRepetitiveArgumentsWithParamsArray

CheckId

CA1025

<strong>Categoria</strong>

Microsoft.design

Alteração significativa

Não-separável

Causa

Um método público ou protegido em um tipo público tem mais de três parâmetros e seus três últimos parâmetros são do mesmo tipo.

Descrição da regra

Use uma matriz de parâmetros em vez de argumentos repetidos quando o número exato de argumentos é desconhecido e os argumentos de variáveis são do mesmo tipo ou podem ser passados como o mesmo tipo. Por exemplo, o WriteLine método fornece uma sobrecarga de propósito geral que utiliza uma matriz de parâmetros para aceitar qualquer número de Object argumentos.

Como corrigir violações

Para corrigir uma violação desta regra, substitua os argumentos repetidos com uma matriz de parâmetros.

Quando suprimir avisos

É sempre seguro eliminar um aviso esta regra; No entanto, esse design pode causar problemas de usabilidade.

Exemplo

O exemplo a seguir mostra um tipo que viole essa regra.

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