Classe globale en c#.net

Fermé
hiba - 21 juil. 2011 à 10:44
 hiba - 26 juil. 2011 à 14:04
Bonjour tout le monde,
Je suis entrain de réaliser mon projet de stage d'été avec c#.net .
Dans ce cadre j'ai utilisé une classe globale pour y mettre un tableau de type variable globale
mais ça n'as pas marcher.Voila mon code

static class Class2
{
public static String[] m_globalVar1 = new string[250];
public static string GlobalVar1(int i)
{
get { return m_globalVar1[i]; }
set { m_globalVar1[i] = value; }


}

il me disait que le (get) et le (set) n'existe pas dans le contexte actuel et (value) aussi.Est ce quelqu'un pourrait m'aider à corriger l'erreur.merci d'avance.
A voir également:

6 réponses

lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
21 juil. 2011 à 11:06
Qu'entends tu par "classe globale" ?
Lucas
0
classe globale est une classe définie à part dans le projet contenant des variables connus par tout le projet(toutes les formes)
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
21 juil. 2011 à 11:31
Et pourquoi la mettre en Static plutôt qu'en Public ?
0
pour qu-elle soit reconnue par tout le projet sinon elle ne l'est pas
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
21 juil. 2011 à 11:46
En regardant sur le MSDN tu peux voir qu'il n'est pas possible de modifier une donnée statique d'une classe statique donc tu ne peux pas mettre le set.

https://docs.microsoft.com/fr-fr/previous-versions/79b3xss3(v=vs.80)?redirectedfrom=MSDN#Y219
0
Je me suis servie de ce lien

http://www.developpez.net/forums/d465914/dotnet/developpement-windows/windows-forms/csharp-net-declarer-variable-globale/

ça marchait avec une variable de type string mais pour un tableau c'était pas le cas
0
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
24 juil. 2011 à 12:00
Slt et sa ne choque personne que on fasse un get set sur un methode ?

essaye de le faire sur une propriete et tu vera sa marchera
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
24 juil. 2011 à 12:36
Oui tu as raison Nico#.

Le fait de mettre l'indice dans l'entête transforme la propriété en méthode.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci pour vos idées je vais essayer de les appliquer
0
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
26 juil. 2011 à 13:53
Pour faire ce que tu veut je te conseille de faire comme celà :

Tu crée une classe par exemple ClasseGlobale

class ClasseGlobale
    {
        private readonly string[] _variableGlobale;//déclaration d'un champ de type tableau 

        public ClasseGlobale(string[] variableGlobale)//déclaration du constructeur avec en paramètre un tableau du même type que le champ
        {
            _variableGlobale = variableGlobale;//affectation du paramètre au chaud
        }

        public string this[int i]//création d'une propriété indexée ou parfois appelée indexeur de type de retour String et en passant l'index en paramètre de this
        {
            get { return _variableGlobale[i]; }//on retourne l'index désiré
            set { _variableGlobale[i] = value; }//on affecte la valeur index désirée
        }
    }


puis tu instancie la classe comme ci-dessous

private static string _s;

        static void Main(string[] args)
        {
            var classeGlobale = new ClasseGlobale(new string[250]);
            _s = classeGlobale[1];
        }


Tu possèdes maintenant un moyen de récupérer la valeur contenue dans la variable _s
0
merci bcp Nico#
0