CA1025: Reemplazar argumentos repetitivos por una matriz de parámetros

Elemento Valor
RuleId CA1025
Category Microsoft.Design
Cambio importante Poco problemático

Causa

Un método público o protegido en un tipo público tiene más de tres parámetros y sus tres últimos parámetros son del mismo tipo.

Nota

Esta regla está en desuso. Para más información, consulte Reglas en desuso.

Descripción de la regla

Utilice una matriz de parámetros en lugar de argumentos repetidos si no conoce el número exacto de argumentos y si los argumentos de variable son del mismo tipo o pueden pasarse como si fueran del mismo tipo. Por ejemplo, el método WriteLine proporciona una sobrecarga de uso general que usa una matriz de parámetros para aceptar cualquier número de Object argumentos.

Cómo corregir infracciones

Para corregir una infracción de esta regla, reemplace los argumentos repetidos por una matriz de parámetros.

Cuándo suprimir las advertencias

Es seguro suprimir una advertencia de esta regla, pero este diseño puede provocar problemas de usabilidad.

Ejemplo

En el ejemplo siguiente se muestra un tipo que infringe esta regla.

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