Compartilhar via


CA1025: substituir argumentos repetitivos por matriz de parâmetros

TypeName

ReplaceRepetitiveArgumentsWithParamsArray

CheckId

CA1025

Categoria

Microsoft.Design

Alteração Significativa

Sem quebra

Causa

Um público ou um método protegido em um tipo utilitário têm mais de três parâmetros, e seus três parâmetros mais recentes são do mesmo tipo.

Descrição da Regra

Use uma matriz de parâmetro em vez dos argumentos repetidos quando o número exato de argumentos é desconhecido os argumentos e variáveis são do mesmo tipo, ou pode ser passado do mesmo tipo.Por exemplo, o método de WriteLine fornece uma sobrecarga de uso geral que usa uma matriz de parâmetro para aceitar qualquer número de argumentos de Object .

Como Corrigir Violações

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

Quando Suprimir Alertas

É sempre seguro suprimir um aviso desta regra; no entanto, esse design pode causar problemas de usabilidade.

Exemplo

O exemplo a seguir mostra um tipo que viola esta 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) {}
   }
}