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.

6 réponses

  1. lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   11
     
    Qu'entends tu par "classe globale" ?
    Lucas
    0
    1. hiba
       
      classe globale est une classe définie à part dans le projet contenant des variables connus par tout le projet(toutes les formes)
      0
    2. lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   11
       
      Et pourquoi la mettre en Static plutôt qu'en Public ?
      0
    3. hiba
       
      pour qu-elle soit reconnue par tout le projet sinon elle ne l'est pas
      0
  2. lucas06150 Messages postés 147 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
    1. 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
  3. Nico# Messages postés 328 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
  4. lucas06150 Messages postés 147 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hiba
     
    merci pour vos idées je vais essayer de les appliquer
    0
  7. Nico# Messages postés 328 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
    1. hiba
       
      merci bcp Nico#
      0