Existe-t-il une alternative C # aux parameters vararg de Java?

J’ai travaillé sur Java et nouveau sur la technologie .Net

Est-il possible de déclarer une fonction en C # qui accepte des parameters d’entrée variables

Existe-t-il une syntaxe C # similaire à la syntaxe Java suivante?

void f1(Ssortingng... a) 

Oui, C # a un équivalent de parameters varargs. Ils sont appelés tableaux de parameters et introduits avec le modificateur de params :

 public void Foo(int x, params ssortingng[] values) 

Alors appelez le avec:

 Foo(10, "hello", "there"); 

Tout comme avec Java, seul le dernier paramètre peut varier comme ceci. Notez que (comme avec Java), un paramètre des params object[] objects peut facilement créer de la confusion, car vous devez vous rappeler si un seul argument de type object[] doit être réencapsulé ou non. De même, pour tout type nullable, vous devez vous rappeler si un seul argument de null sera traité comme une référence de tableau ou un seul élément de tableau. (Je pense que le compilateur ne crée que le tableau s’il le faut, mais j’ai tendance à écrire du code qui évite de devoir m’en souvenir.)

Jetez un oeil sur params (Référence C #)

Le mot clé params vous permet de spécifier un paramètre de méthode prenant un nombre variable d’arguments.

Vous pouvez envoyer une liste d’arguments séparés par des virgules du type spécifié dans la déclaration de paramètre ou un tableau d’arguments du type spécifié. Vous pouvez également envoyer aucun argument.

Aucun paramètre supplémentaire n’est autorisé après le mot clé params dans une déclaration de méthode, et un seul mot clé params est autorisé dans une déclaration de méthode.

Comme indiqué dans l’exemple, la méthode est déclarée comme

 public static void UseParams(params int[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); } 

et utilisé comme

 UseParams(1, 2, 3, 4);