PARAMS |
Paramètres |
---|---|
C# (C Sharp) |
Syntaxe
typededonnees method(params typededonnees variable,...) { ... } |
Paramètres
Nom | Description |
---|---|
method | Ce paramètre permet d'indiquer le nom de la méthode. |
typededonnees | Ce paramètre permet d'indiquer le type de données de la variable ou à retourner. |
variable | Ce paramètre permet d'indiquer le nom d'une variable. |
Description
Ce mot réservé permet d'indiquer une méthode avec un nombre d'arguments variables. On parle donc d'une méthode pouvant aussi bien avoir 1, 2, 3, 5, 10 ou 27 paramètres ou toutes autres nombres de paramètres souhaité par l'utilisateur de cette méthode. Ainsi, le mot réservé params offre la possibilité d'envoyer une liste de paramètres séparés par des virgules du type spécifié dans la déclaration de paramètre ou un tableau de paramètres du type spécifié. Vous pouvez également ne pas envoyer de paramètres. Si vous n'envoyez aucun paramètre, la longueur de la liste de paramètres est 0.
Remarques
- Aucun paramètre supplémentaire n'est autorisé après le mot réservé params dans une déclaration de méthode et un seul mot réservé params est autorisé dans une déclaration de méthode.
- Le paramètre indiqué par le mot réservé params doit obligatoirement être un tableau car sinon vous aurez l'un des messages d'erreur suivant lors de la compilation :
- Dans la pratique, le mot réservé params offre la possibilité de reproduire le comportement les fonctions printf, scanf,... du langage de programmation C tout en respectant les standards du langage de programmation C#.
CS0225 : The params parameter must be a single dimensional array |
CS0225 : Le paramètre params doit être un tableau à une seule dimension |
Exemples
L'exemple suivant permet d'afficher les 8 nombres premiers :
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- public class ParamsSamples
- {
- public static void ShowParams(params int[] list)
- {
- for (int i = 0; i < list.Length; i++)
- {
- Console.Write(list[i] + " ");
- }
- Console.WriteLine();
- }
-
- static void Main()
- {
- ShowParams(2, 3, 5, 7, 11, 13, 17, 19);
- }
- }
on obtiendra le résultat suivant :
2 3 5 7 11 13 17 19L'exemple suivant permet d'émuler un printf du langage de programmation C à l'aide du mot réservé params :
- using System.Collections.Generic;
- using System.Text;
-
- public class printfSamples
- {
- public static void printf(String s, params object[] list)
- {
- int currentParam = 0;
- for (int i = 0; i < s.Length;i++ )
- {
- if ('%' == s[i])
- {
- i++;
- switch (s[i]) {
- case 'c':
- case 'd':
- case 'f':
- case 'i':
- case 's':
- Console.Write(list[currentParam++]);
- break;
- case 'x':
- Console.Write(((int)list[currentParam++]).ToString("x"));
- break;
- }
- } else
- Console.Write(s[i]);
- }
- }
-
- static void Main()
- {
- printf("Premier=%i, deuxieme=%s, troisieme=%c, hexadecimal=%x", 2, "gladir.com", 'a', 255);
- }
- }
on obtiendra le résultat suivant :
Premier=2, deuxieme=gladir.com, troisieme=a, hexadecimal=ff