J'ai travaillé sur Java et sur la nouvelle technologie .Net
Est-il possible de déclarer une fonction en C # qui accepte des paramètres d'entrée variables
Existe-t-il une syntaxe C # similaire à la syntaxe Java suivante?
void f1(String... a)
J'ai travaillé sur Java et sur la nouvelle technologie .Net
Est-il possible de déclarer une fonction en C # qui accepte des paramètres d'entrée variables
Existe-t-il une syntaxe C # similaire à la syntaxe Java suivante?
void f1(String... a)
Réponses:
Oui, C # a un équivalent des paramètres varargs. Ils sont appelés tableaux de paramètres et introduits avec le paramsmodificateur:
public void Foo(int x, params string[] values)
Alors appelez-le avec:
Foo(10, "hello", "there");
Tout comme avec Java, ce n'est que le dernier paramètre qui peut varier comme ça. Notez que (comme avec Java) un paramètre de params object[] objectspeut facilement prêter à confusion, car vous devez vous rappeler si un seul argument de type object[]est censé être encapsulé à nouveau ou non. De même pour tout type Nullable, vous devez vous rappeler si un seul argument de nullsera traité comme une référence de tableau ou comme un élément de tableau unique. (Je pense que le compilateur ne crée le tableau que s'il le faut, mais j'ai tendance à écrire du code, ce qui m'évite d'avoir à m'en souvenir.)
Jetez un œil aux paramètres (référence C #)
Le mot-clé params vous permet de spécifier un paramètre de méthode qui prend 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);