Bonjour,
s.v.p je voudrai savoir comment déclarer une variable qui peut être utiliser dans plusieurs fenêtres,est ce qu'il y a un moyen pour le faire comme un module au vb ?
Merci.
Version imprimable
Bonjour,
s.v.p je voudrai savoir comment déclarer une variable qui peut être utiliser dans plusieurs fenêtres,est ce qu'il y a un moyen pour le faire comme un module au vb ?
Merci.
La meilleur facon à mon avis c'est de déclarer les variables globales dans un fichier à par (pas forcément)... Pour pouvoir les réutiliser il faut les redéclarer en début de chaque fichier qui les utilise comme ça:
extern type nom;
ça fonctionne aussi pour les classes les fonctions. Le seul problème c'est que c'est long à faire.
Mise à jour:
C'est impossible pour les variables managés
raphchar
Franchement, en C++/CLI, je conseillerais plutôt d'en faire des variables statiques d'une classe managée, plutôt que des variables globales libres.
c'est vraiment pas une mauvaise idée. Pour un programme que j'avais fais, j'avais fait une classe contenant tout ce qui concernait le document (fonctions et variable).Citation:
Franchement, en C++/CLI, je conseillerais plutôt d'en faire des variables statiques d'une classe managée, plutôt que des variables globales libres.
Si tu ne sais pas comment faire tu peux me demander
raphchar
Code:
1
2
3
4
5
6
7 class Donnees { public: static int frequence; //Définitons dans la classe static float ratio; };
static rend la variable globale, c'est à dire indépedante des objets d'un classe. L'appel au membre Classe::Variable retourne donne une valeur indépendante de tout objet de la classe créée, donc ici toute les données (frequence et ratio) se comportent comme des variables globales. L'attribution se fait de la même manièreCode:
1
2
3 //... if(Donnees::frequence==0)return; //appel à la variable
L'inconvéniant, c'est que ça ne fonctionne que pour du code managé, l'avantage c'est qu'il ne faut pas redéfinir les variables à chaque entête de document.Code:Donnees::Ratio=Width/Height;
Salut Raphchar,
Je crois avoir compris.
Cela ressemble à des choses que je connais.
Merci beaucoup :ccool::ccool:
Bon, je ne trouve plus l'icone "Résolu" , je vais me faire engueuler par les administrateurs !:aie::aie:
Les variables globales, c'est très mauvais.
Les statics ne sont pas globales car il y a une instance des statiques par AppDomain de votre application.
Si vous les considérez comme des globales, vous allez être surpris.
Hors de .Net, une variable "de classe" n'est qu'une variable globale déguisée.
Dans .Net, ça devient plus compliquée à cause des AppDomain (qui sont plus ou moins une sous-division d'un processus; il peut y avoir plusieurs AppDomain dans un seul processus): Les AppDomain étant censés être séparés, les variables statiques des classes managées sont bien séparées d'un AppDomain à l'autre. Mais si je comprends bien Bacelar, les variables vraiment globales (et peut-être les variables statiques des classes non-managées) sont communes à tout le processus, ce qui est dangereux.
Une variable globale n'est jamais justifiée.
Il existe des Design Pattern, comme le Singleton, qui sont bien plus propre que les variables globales.
Le choix est fonction du type d’utilisation de la variable et surtout pas en fonction de son espace de validité.