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 ?
Version imprimable
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:
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:
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 ?
Citation:
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.Citation:
Envoyé par Paul TOTH
Sinon, pour ma question d'avant:
Citation:
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.