Classe globale en c#.net

hiba -  
 hiba -
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   Statut Membre Dernière intervention   11
 
Qu'entends tu par "classe globale" ?
Lucas
0
hiba
 
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   Statut Membre Dernière intervention   11
 
Et pourquoi la mettre en Static plutôt qu'en Public ?
0
hiba
 
pour qu-elle soit reconnue par tout le projet sinon elle ne l'est pas
0
lucas06150 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   11
 
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
hiba
 
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   Statut Membre Dernière intervention   102
 
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   Statut Membre Dernière intervention   11
 
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
hiba
 
merci pour vos idées je vais essayer de les appliquer
0
Nico# Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   102
 
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
hiba
 
merci bcp Nico#
0