Variable globale

Résolu
LordOfTheShadow Messages postés 174 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 9 septembre 2010 - 11 févr. 2009 à 17:29
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.

4 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
11 févr. 2009 à 17:43
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)
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
12 févr. 2009 à 09:29
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
---------------------
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
12 févr. 2009 à 11:37
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)
3
LordOfTheShadow Messages postés 174 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 9 septembre 2010 5
12 févr. 2009 à 08:27
Heu par contre comment peut-on instancier un tableau dans une classe static?

La connaissance est la plus grande des richesses.
0
Rejoignez-nous