cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 30 juil. 2007 à 19:25
MaVariable = Nothing ne SUPPRIME pas la variable.
Ce qui gere la durée de vie d'une variable c'est sa portée : dim, private, static, public, global et son emplacement : dans un module(memoire "statique"), une classe(memoire "dynamique"), une fonction (pile).
Les termes ne sont pas exacts mais c'est pour facilite la comprehention. Dit nous ce que tu veux faire et on te diras la solution adequate.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 30 juil. 2007 à 20:53
Private : (identique a dim) indique que ta variable ne sera pas "accessible" en dehors de son "parent" pour un module standard une variable private ne s'utilisera que dans le module dans lequel elle a été declaré.
Static : S'utilise dans une fonction cela permet de restreindre l'utilisation d'une variable de type private. C'est a dire que la variable n'est pas sur la pile mais dans la section "data" pourtant elle ne sera accessible que dans le code de la fonction c'est vb qui gerera la restriction.
Global : (identique à public) heritage des anciennes version de vb
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 juil. 2007 à 21:58
Je rajouterais une précision pour Static
Une variable static est conservée entre 2 appels de la fonction. Ainsi si lors de l'appel précédent la variable statique avait oris la valeur 142, lors de l'appel suivant elle aura toujours la valeur 142 au lieu d'etre (dans la pluspart des cas) = 0
---- Sevyc64 (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 30 juil. 2007 à 22:01
C'est ce que je disais. C'est identique a une variable private dans un module ou une classe mais dont "l'utilisation" est restreinte à la fonction. C'est a dire que l'emplacement memoire de cette variable reste valide pendant toute la durée du processus par opposition a une variable sur la pile qui ne dure que le temps d'une fonction.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 juil. 2007 à 22:12
Oui EBArtSoft, j'avais bien compris. C'est parfaitement clair pour nous qui maitrisons ces termes et ce qu'ils impliquent, mais j'ai pensé que pour quelqu'un qui ne connais rien à la portée et la durée de vie des objets, il n'était pas évident dans le fait "que c'est comme une Private" que la variable conservait sa valeur entre 2 appels contrairement aux autres variables "classique" de la fonction, car sa durée de vie est celle de l'application et non plus celle de la fonction.
Même si c'est pourtant évident, ce n'est pas forcément facilement appréhendable pour un novice.
---- Sevyc64 (alias Casy) ----# LE PARTAGE EST NOTRE FORCE #