Plusieurs “params” paramètres possible?
Est-il possible d'avoir plusieurs params
paramètres en C#? Quelque chose comme ceci:
void foobar(params int[] foo, params string[] bar)
Mais je ne suis pas sûr si c'est possible. Si elle l'est, comment le compilateur décider où couper les arguments?
- Bienvenue à Stack Overflow Gary, 5 réponses répertoriées dans presque autant de secondes. Pourquoi ne pas vous passer en param de classes? ou un
<IEnum<IEnum>>
- Qu'entendez-vous par le passage d'un paramètre de classes?
- J'ai été frappé par l'absence de cette fonction 🙁
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez avoir qu'un params argument. Vous pouvez avoir deux arguments de type tableau et l'appelant peut utiliser les initialiseurs de tableau appeler votre méthode, mais il ne peut être une params argument.
Non ce n'est pas possible. Prenez ceci:
comment le compilateur censé interpréter ceci:
Il pourrait être lu comme un de ces:
Vous pouvez prendre deux tableaux comme paramètres comme ceci cependant:
De MSDN - params
Je sais que c'est un super vieux post, mais ici:
En C# 7, vous pouvez réellement. Vous pouvez utiliser
System.ValueTuple
pour ce faire:Et puis vous pouvez l'utiliser comme ceci:
Et l'évidence de sortie:
Le seul inconvénient est que vous avez à faire cela:
foobars[0].foo;
au lieu defoos[0];
, mais c'est vraiment un tout tout petit problème. D'ailleurs, si tu le voulais vraiment, vous pourriez faire une extension, ou de la fonction de convertir des tableaux, bien que je ne pense pas que ce soit vraiment la peine.Pas, un seul param est permis et même qui doit être le dernier argument. Lire cette
Cela fonctionne
Mais cela ne fonctionne pas
Il n'est pas possible. Il peut être d'un seul mot clé params par des déclarations de méthode - à partir de MSDN - http://msdn.microsoft.com/en-us/library/w5zay9db(v=vs. 71).aspx