Condividi tramite


Ca1025: Sostituire gli argomenti ripetitivi con una matrice di parametri

TypeName

ReplaceRepetitiveArgumentsWithParamsArray

CheckId

CA1025

Category

Microsoft.Design

Breaking Change

Non sostanziale

Causa

Un metodo pubblico o protetto in un tipo pubblico presenta più di tre parametri e i relativi ultimi tre parametri sono dello stesso tipo.

Descrizione della regola

Utilizzare una matrice di parametri anziché argomenti ripetuti quando non si conosce il numero esatto di argomenti e gli argomenti variabili sono, o possono essere passati, dello stesso tipo. Ad esempio, il metodo WriteLine fornisce un overload di scopo generale che utilizza una matrice di parametri per accettare qualsiasi numero di argomenti Object.

Come correggere le violazioni

Per correggere una violazione di questa regola, sostituire gli argomenti ripetuti con una matrice di parametri.

Esclusione di avvisi

L'esclusione di un avviso da questa regola è sempre sicura, tuttavia questa progettazione potrebbe causare problemi di utilizzabilità.

Esempio

Nell'esempio riportato di seguito viene illustrato un tipo che viola questa regola.

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