Salut,
En VB, on peut trouver des méthodes ayant comme paramètres des champs précédés du mot réservé optional. Dans ce cas, ces paramètres peuvent être omis lors d'un appel à la méthode concernée.
Est ce que la notion d'optional existe en Delphi ?
Salut,
En VB, on peut trouver des méthodes ayant comme paramètres des champs précédés du mot réservé optional. Dans ce cas, ces paramètres peuvent être omis lors d'un appel à la méthode concernée.
Est ce que la notion d'optional existe en Delphi ?
non, mais on peut donner une valeur par défaut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function test(valeur1:string; valeur2:integer=123); begin end; begin test('utilise la valeur par défaut'); test('force la valeur',456); end.
Merci. Y aurait-il un moyen pour savoir si cette valeur par défaut a été spécifiée dans l'appel de méthode ?
Si je ne veux pas spécifier une valeur par défaut je serais obligé de faire :
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 procedure test(valeur1:string; valeur2:integer);overload; procedure test(valeur1:string);overload; procedure test(valeur1:string; valeur2:integer); begin end; procedure test(valeur1:string); begin end; begin test('utilise la valeur par défaut'); test('force la valeur',456); end.
je ne comprend pas bien là,
si tu fais ça ce sont deux méthodes différentes avec des traitements différents (ou tu répètes le code)
je ne connais pas les paramètres optionnels de VB...mais sous Delphi, rien n'est optionnel, tu peux ignorer un paramètre, lui donner une valeur par défaut pour ne pas le saisir (pas comme le ,, de VB) mais il existe toujours.
peux-tu préciser ce que tu cherches à faire ?
Envoyé par AL1986
Je voulais dire en répétant le même code dans les deux fonctions, mais je pense que ce n'est pas très utile.Envoyé par Paul TOTH
Sinon, pour ma question d'avant:
Envoyé par AL1986
Il n'y a pas moyen de savoir si la valeur par défaut a été utilisée ou non, sauf si la valeur que tu donnes par défaut n'est pas une valeur "acceptable" normalement. Par exemple, -1 pour un entier positif.
Les valeurs par défaut ne sont pas des paramètres optionnels. Comme l'a dit Paul Toth, si tu ne mets pas le paramètre, il est quand même mis "automatiquement" comme si tu avais spécifié la valeur par défaut.
Si tu as vraiment besoin de savoir si un paramètre a été donné ou non, tu dois ajouter un booléen.
sjrd, ancien rédacteur/modérateur Delphi.
Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
Découvrez Mes tutoriels.
Partager