Reemplaza argumentos repetitivos con una matriz de parámetros

Actualización: noviembre 2007

Nombre de tipo

ReplaceRepetitiveArgumentsWithParamsArray

Identificador de comprobación

CA1025

Categoría

Microsoft.Design

Cambio problemático

No problemático

Motivo

Un método público o protegido de un tipo público tiene más de tres parámetros, y los últimos tres parámetros son el mismo tipo.

Descripción de la regla

Utilice una matriz de parámetros de argumentos repetidos cuando se conoce el número exacto de argumentos y los argumentos de variable sean del mismo tipo o puedan pasarse como si fueran del mismo tipo. Por ejemplo, el método WriteLine proporciona una sobrecarga de propósito general que utiliza una matriz de parámetros para aceptar cualquier número de argumentos Object.

Cómo corregir infracciones

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

Cuándo suprimir advertencias

Siempre es seguro suprimir una advertencia de esta regla; sin embargo, este diseño podría provocar problemas de uso.

Ejemplo

El siguiente ejemplo 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) {}
   }
}