Autant je comprends le passage par référence, où la fonction va modifier une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la
variable n'est pas modifiée dans la fonction.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere [MVP]
Bonjour
Ben justement, en déclarant byVal, tu garantis que cet argument ne sera pas modifier par ta procédure...
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "sceptic" a écrit dans le message de news:43943be5$1$20164$
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la variable n'est pas modifiée dans la fonction.
Merci
Bonjour
Ben justement, en déclarant byVal, tu garantis que cet argument
ne sera pas modifier par ta procédure...
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"sceptic" <sceptic@sceptic.fr> a écrit dans le message de
news:43943be5$1$20164$8fcfb975@news.wanadoo.fr...
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier
une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la
variable n'est pas modifiée dans la fonction.
Ben justement, en déclarant byVal, tu garantis que cet argument ne sera pas modifier par ta procédure...
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "sceptic" a écrit dans le message de news:43943be5$1$20164$
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la variable n'est pas modifiée dans la fonction.
Merci
Guy DETIENNE
Salut ;O)
Mieux vaut un exemple simple :
Dim Toto as Long
Toto = 1 Call MyFunctionWithByRef(Toto) Msgbox Toto '-> Toto vaut 2 car Toto a été modifié dans le fonction MyFunctionWithByRef -> paramètre ByRef
Toto = 1 Call MyFunctionWithByVal(Toto) Msgbox Toto '-> Toto vaut toujours 1 car inchangé -> paramètre ByVal
Public Function MyFunctionWithByRef(ByRef MonChiffre as Long) as Long
'LA variable MonChiffre est en fait la même variable que Toto. Elle pointe sur la même référence mémoire. 'Donc si MonChiffre est modifié, Toto l'est aussi puisque c'est une seule et unique zone mémoire. MonChiffre = 2
End Function
Public Function MyFunctionWithByVal(ByVal MonChiffre as Long) as Long
MonChiffre = 2
End Function
L'utilisation de ByRef et ByVal aura bcp d'incidence dans le cas d'utilisation des API's.
ByVal => Cela signifie que l'on passe notre argument par 'valeur' , c'est à dire que la fonction appelée ne travaillera pas directement sur la variable que tu lui passes en paramètre mais sur un clone de celle-ci. Cela signifie que si le cas écheant la variable est modifiée par la fonction,cela n'aura pas de repercussion sur la variable originale de votre programme. -> voir MyFunctionWithByVal
ByRef=> Ce coup-ci la variable est passée par Référence. La fonction appelée reçoit l'adresse de la variable utilisée dans le programme (un genre de pointeur en C). Par conséquence si la fonction modifie la variable elle sera aussi modifiée dans le programme si tu la réutilises. -> MyFunctionWithByRef
Guy
"sceptic" a écrit dans le message de news:43943be5$1$20164$
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la variable n'est pas modifiée dans la fonction.
Merci
Salut ;O)
Mieux vaut un exemple simple :
Dim Toto as Long
Toto = 1
Call MyFunctionWithByRef(Toto)
Msgbox Toto '-> Toto vaut 2 car Toto a été modifié dans le fonction
MyFunctionWithByRef -> paramètre ByRef
Toto = 1
Call MyFunctionWithByVal(Toto)
Msgbox Toto '-> Toto vaut toujours 1 car inchangé -> paramètre ByVal
Public Function MyFunctionWithByRef(ByRef MonChiffre as Long) as Long
'LA variable MonChiffre est en fait la même variable que Toto. Elle
pointe sur la même référence mémoire.
'Donc si MonChiffre est modifié, Toto l'est aussi puisque c'est une
seule et unique zone mémoire.
MonChiffre = 2
End Function
Public Function MyFunctionWithByVal(ByVal MonChiffre as Long) as Long
MonChiffre = 2
End Function
L'utilisation de ByRef et ByVal aura bcp d'incidence dans le cas
d'utilisation des API's.
ByVal => Cela signifie que l'on passe notre argument par 'valeur' , c'est à
dire que la fonction appelée ne travaillera pas directement sur la variable
que tu lui passes en paramètre mais sur un clone de celle-ci.
Cela signifie que si le cas écheant la variable est modifiée par la
fonction,cela n'aura pas de repercussion sur la variable originale de votre
programme. -> voir MyFunctionWithByVal
ByRef=> Ce coup-ci la variable est passée par Référence.
La fonction appelée reçoit l'adresse de la variable utilisée dans le
programme (un genre de pointeur en C). Par conséquence si la fonction
modifie la variable elle sera aussi modifiée dans le programme si tu la
réutilises. -> MyFunctionWithByRef
Guy
"sceptic" <sceptic@sceptic.fr> a écrit dans le message de
news:43943be5$1$20164$8fcfb975@news.wanadoo.fr...
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier
une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la
variable n'est pas modifiée dans la fonction.
Toto = 1 Call MyFunctionWithByRef(Toto) Msgbox Toto '-> Toto vaut 2 car Toto a été modifié dans le fonction MyFunctionWithByRef -> paramètre ByRef
Toto = 1 Call MyFunctionWithByVal(Toto) Msgbox Toto '-> Toto vaut toujours 1 car inchangé -> paramètre ByVal
Public Function MyFunctionWithByRef(ByRef MonChiffre as Long) as Long
'LA variable MonChiffre est en fait la même variable que Toto. Elle pointe sur la même référence mémoire. 'Donc si MonChiffre est modifié, Toto l'est aussi puisque c'est une seule et unique zone mémoire. MonChiffre = 2
End Function
Public Function MyFunctionWithByVal(ByVal MonChiffre as Long) as Long
MonChiffre = 2
End Function
L'utilisation de ByRef et ByVal aura bcp d'incidence dans le cas d'utilisation des API's.
ByVal => Cela signifie que l'on passe notre argument par 'valeur' , c'est à dire que la fonction appelée ne travaillera pas directement sur la variable que tu lui passes en paramètre mais sur un clone de celle-ci. Cela signifie que si le cas écheant la variable est modifiée par la fonction,cela n'aura pas de repercussion sur la variable originale de votre programme. -> voir MyFunctionWithByVal
ByRef=> Ce coup-ci la variable est passée par Référence. La fonction appelée reçoit l'adresse de la variable utilisée dans le programme (un genre de pointeur en C). Par conséquence si la fonction modifie la variable elle sera aussi modifiée dans le programme si tu la réutilises. -> MyFunctionWithByRef
Guy
"sceptic" a écrit dans le message de news:43943be5$1$20164$
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la variable n'est pas modifiée dans la fonction.
Merci
Guy DETIENNE
Re ;O)
N'oublions pas que ByVal sera toujours plus gourmand qu'un ByRef car une copie mémoire de la variable est effectuée. Cela va de soit me direz-vous, mais d'un point de vue optimisation ca joue beaucoup tant que l'on fait attention à la manipulation de celle-ci à travers la procédure appelée.
Guy
"sceptic" a écrit dans le message de news:43943be5$1$20164$
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la variable n'est pas modifiée dans la fonction.
Merci
Re ;O)
N'oublions pas que ByVal sera toujours plus gourmand qu'un ByRef car une
copie mémoire de la variable est effectuée. Cela va de soit me direz-vous,
mais d'un point de vue optimisation ca joue beaucoup tant que l'on fait
attention à la manipulation de celle-ci à travers la procédure appelée.
Guy
"sceptic" <sceptic@sceptic.fr> a écrit dans le message de
news:43943be5$1$20164$8fcfb975@news.wanadoo.fr...
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier
une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la
variable n'est pas modifiée dans la fonction.
N'oublions pas que ByVal sera toujours plus gourmand qu'un ByRef car une copie mémoire de la variable est effectuée. Cela va de soit me direz-vous, mais d'un point de vue optimisation ca joue beaucoup tant que l'on fait attention à la manipulation de celle-ci à travers la procédure appelée.
Guy
"sceptic" a écrit dans le message de news:43943be5$1$20164$
Bonjour,
Autant je comprends le passage par référence, où la fonction va modifier une
ou des variables, autant je ne vois pas l'intérêt par valeur puisque la variable n'est pas modifiée dans la fonction.