Variable globale [Résolu]

Messages postés
175
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
9 septembre 2010
- - Dernière réponse : SharpMao
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
- 12 févr. 2009 à 11:37
Bonjour,
J'aimerai savoir comment créer une variable globale accessible depuis plusieurs composants. Merci de l'aide.

La connaissance est la plus grande des richesses.
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
50
3
Merci
Hello,

Je ferais ceci avec une classe statique :

public static class Global{
//Membres static
}

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 185 internautes nous ont dit merci ce mois-ci

Commenter la réponse de SharpMao
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
3
Merci
Bonjour,

Comme le disait SharpMao, avec des membres static dans ta classe:
public static class Global
    {
        //Membres static
        public static string[] TabStr = new string[50];

        public static List<string> ListStr = new List<string>();
    }

Pour information, tu peux aussi utiliser une classe Singleton pour les variables globales de ton application:
http://odalet.wordpress.com/2006/06/20/pattern-singleton-thread-safe-en-c-cest-facile/
En implémentation de ta classe globale:
public class SyngletonGlobal
    {
        private static readonly SyngletonGlobal instance = new SyngletonGlobal();

        public string[] TabStr;

        public List<string> ListStr;

        /// <summary>
        /// Constructeur
        /// </summary>
        private SyngletonGlobal()
        {
            TabStr = new string[50];

            ListStr = new List<string>();

            //Puis remplissage de tes tableaux
        }

        public static SyngletonGlobal Instance { get { return instance; } }
    }
Tu accèderas ainsi à tes variables avec l'instruction suivante:
SyngletonGlobal.Instance.TabStr; //Etc...

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 185 internautes nous ont dit merci ce mois-ci

Commenter la réponse de billou_13
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
50
3
Merci
Hello,

Il y a aussi la possibilité d'avoir un constructeur static, qui sera appelé automatiquement au premier appel à la classe.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 185 internautes nous ont dit merci ce mois-ci

Commenter la réponse de SharpMao
Messages postés
175
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
9 septembre 2010
4
0
Merci
Heu par contre comment peut-on instancier un tableau dans une classe static?

La connaissance est la plus grande des richesses.
Commenter la réponse de LordOfTheShadow