Utilisez le mot clé params pour les arguments variables
Mise à jour : novembre 2007
TypeName |
UseParamsForVariableArguments |
CheckId |
CA2230 |
Catégorie |
Microsoft.Usage |
Modification avec rupture |
Oui |
Cause
Un type public ou protégé contient une méthode publique ou protégée qui utilise la convention d'appel VarArgs.
Description de la règle
La convention d'appel VarArgs est utilisée avec certaines définitions de méthode qui acceptent un nombre variable de paramètres. Une méthode qui utilise la convention d'appel VarArgs n'est pas conforme CLS et peut ne pas être accessible à l'échelle de plusieurs langages de programmation.
En C#, la convention d'appel VarArgs est utilisée lorsque la liste des paramètres d'une méthode se termine par le mot clé __arglist. Visual Basic ne prend pas en charge la convention d'appel VarArgs, et Visual C++ autorise uniquement son utilisation dans un code non managé qui utilise la notation elliptique ....
Comment corriger les violations
Pour corriger une violation de cette règle en C#, utilisez le mot clé params (Référence C#) au lieu de __arglist.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L'exemple suivant présente deux méthodes ; une qui enfreint la règle et une autre qui la satisfait.
using System;
[assembly: CLSCompliant(true)]
namespace UsageLibrary
{
public class UseParams
{
// This method violates the rule.
[CLSCompliant(false)]
public void VariableArguments(__arglist)
{
ArgIterator argumentIterator = new ArgIterator(__arglist);
for(int i = 0; i < argumentIterator.GetRemainingCount(); i++)
{
Console.WriteLine(
__refvalue(argumentIterator.GetNextArg(), string));
}
}
// This method satisfies the rule.
public void VariableArguments(params string[] wordList)
{
for(int i = 0; i < wordList.Length; i++)
{
Console.WriteLine(wordList[i]);
}
}
}
}
Voir aussi
Concepts
Spécification CLS (Common Language Specification)