En C #, vous pouvez le faire:
foo = string.Format("{0} {1} {2} {3} ...", "aa", "bb", "cc" ...);
Cette méthode Format()
accepte des paramètres infinis, étant le premier comment la chaîne doit être formatée et les autres sont des valeurs à mettre dans la chaîne.
Aujourd'hui, je suis arrivé à une situation où je devais obtenir un ensemble de chaînes et les tester, puis je me suis souvenu de cette fonctionnalité de langage, mais je n'avais aucune idée. Après quelques recherches infructueuses sur le Web, j'ai réalisé qu'il serait plus prudent de simplement obtenir un tableau, ce qui ne m'a pas satisfait.
Q: Comment créer une fonction qui accepte des paramètres infinis? Et comment l'utiliser?
Avec le mot clé params
.
Voici un exemple:
public int SumThemAll(params int[] numbers)
{
return numbers.Sum();
}
public void SumThemAllAndPrintInString(string s, params int[] numbers)
{
Console.WriteLine(string.Format(s, SumThemAll(numbers)));
}
public void MyFunction()
{
int result = SumThemAll(2, 3, 4, 42);
SumThemAllAndPrintInString("The result is: {0}", 1, 2, 3);
}
Le code montre différentes choses. Tout d'abord, l'argument avec le mot clé params
doit toujours être le dernier (et il ne peut y en avoir qu'un par fonction). De plus, vous pouvez appeler une fonction qui prend un argument params
de deux manières. La première façon est illustrée dans la première ligne de MyFunction
où chaque nombre est ajouté comme un seul argument. Cependant, il peut également être appelé avec un tableau comme illustré dans SumThemAllAndPrintInString
qui appelle SumThemAll
avec le int[]
appelé numbers
.
Utilisez le mot-clé params. Usage:
public void DoSomething(int someValue, params string[] values)
{
foreach (string value in values)
Console.WriteLine(value);
}
Le paramètre qui utilise le mot clé params vient toujours à la fin.
Quelques notes.
Les paramètres doivent être marqués sur un type de tableau, comme la chaîne [] ou l'objet [].
Le paramètre marqué w/params doit être le dernier argument de votre méthode. Foo (chaîne input1, objets [] items) par exemple.
utilisez le mot clé params
. Par exemple
static void Main(params string[] args)
{
foreach (string arg in args)
{
Console.WriteLine(arg);
}
}
Vous pouvez y parvenir en utilisant le mot clé params .
Petit exemple:
public void AddItems(params string[] items)
{
foreach (string item in items)
{
// Do Your Magic
}
}
public static void TestStrings(params string[] stringsList)
{
foreach (string s in stringsList){ }
// your logic here
}
public string Format(params string[] value)
{
// implementation
}
Le mot-clé params est utilisé
function void MyFunction(string format, params object[] parameters) {
}
Au lieu de l'objet [], vous pouvez utiliser n'importe quel type de votre choix. L'argument params doit toujours être le dernier de la ligne.