Partager via


Remplacer les arguments répétitifs par un tableau params

Mise à jour : novembre 2007

TypeName

ReplaceRepetitiveArgumentsWithParamsArray

CheckId

CA1025

Catégorie

Microsoft.CSharp

Modification avec rupture

Non

Cause

Une méthode publique ou protégée dans un type public présente plus de trois paramètres, et les trois derniers sont du même type.

Description de la règle

Utilisez un tableau de paramètres au lieu d'arguments répétés lorsque le nombre exact d'arguments est inconnu et lorsque les arguments variables sont de même type ou peuvent être passés comme étant de même type. Par exemple, la méthode WriteLine fournit une surcharge à usage général qui utilise un tableau de paramètres pour accepter tout nombre d'arguments Object.

Comment corriger les violations

Pour corriger une violation de cette règle, remplacez les arguments répétés par un tableau de paramètres.

Quand exclure des avertissements

Par mesure de sécurité, il est systématiquement recommandé d'exclure un avertissement de cette règle ; toutefois, ce design peut engendrer des problèmes d'utilisation.

Exemple

L'exemple suivant affiche un type qui ne respecte pas cette règle.

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