IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

ArrayList toujours vide


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 66
    Par défaut ArrayList toujours vide
    Bonjour,

    voici mon probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    //j'ai une classe A
     
    ArrayList list;
     
    //constructeur
    Public A ()
    {
        list = new ArrayList();
    }
     
    // methode pour enregistrer
    public void enregistre (int i)
    {
       list.add(i);
    }
     
     
    //PUIS j'ai une classe B
     
    int num;
     
    public B()
    {
      num = 1;
    }
     
    public void envoiNum(Classe A)
    {
      A.enregistrer(num);
    }
    voila pour le code.
    Mon problème est lorsque je fait ça, dans classe A , il me dit au niveau de ma méthode envoyer que la liste n'est pas initialisée.

    Mais si je l'initialise dans la méthode à chaque appel de la fonction ma liste se vide.

    Comment faire pour toujours garder mes enregistrements ?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Ce que tu montre de ton code n'est pas asser clair pour comprendre ton probleme

    1-Les methodes enregistre et enregistrer son bien la meme avec une faute de frappe ?
    2-Ou et comment est instancié A que tu passe a EnvoiNum

    3- ArrayList c'est obsolete, je te conseille les List<T>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 66
    Par défaut
    Je remet a jour apres un autre test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    class Test
        {
            private List<int> liste; 
     
            public Test ()
            {
                liste = new List<int>();
            }
     
     
     
            public void enregistrer(int pos)
            {
    			this.liste.Add(pos); 
            }
     
     
            public List<int> getListe
            {
                get { return liste; }
                set { liste = value; }
            }
        }
    }
     
    class Test2
        {
            private int position;
     
     
            public Test2(int position)
            {
                this.position = position;
            }
     
            public void envoyerPosition()
            {
                Test t = new Test();
     
                t.enregistrer(position);
            }
    }
    Voila et j'ai toujours le même problème

  4. #4
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bonjour,

    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class Test2
        {
            private int position;
            public Test maClasse {get; private set;}
     
            public Test2(int position)
            {
                this.position = position;
                maClasse = new Test(); 
            }
     
            public void envoyerPosition()
            { 
                maClasse.enregistrer(position);
            }
    }
    si tu gardes la référence vers ton objet, ta lste sera à jour. Ce que tu faisias, c'est que tu créait à chaque fois une nouvelle instance avec la liste vide, et tu ne gardais pas la référence vers l'objet.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 66
    Par défaut
    Merci pour ce conseil mais cela ne change rien
    dans ma classe Test au niveau de ma méthode enregistrer
    il me dit toujours que la référence d'objet n'est pas définit à une instance d'objet
    et ma liste est à null

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonjour

    Amon avis il y a un probleme fondametal de design !

    A quoi sert ta classe test dans le cas présent ?
    Je ne vois pas franchement l'intéret ?
    Si ce n'est respecter des regles (académique) superflues
    Ou alors il y a un autre bingz plus important dont l'exemple que tu montre n'est qu'une partie de l'iceberg...

    Si le but est d'encapsuler ta Liste, tu peux toujours passer par une classe qui herite de List<T>

    Ou alors tu cree une instance de Test en tant que membre de de classe Test2 mais creer une instance de Test dans ta methode envoyerposition, ca n'a aucun sens !

    Mais voici une solution pour ton exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    class Test2
    {
     
      private int position;
      private Test t;
      public Test2()
      {
        t = new Test();  
      }
     
      public Test2(int position) : this()
      {
        this.position = position;
      }
     
      public void envoyerPosition()
      {
        t.enregistrer(position);
      }
    }

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Bonsoir,

    D'un point de vue design, il est évident qu'il faut plus envisager une solution telle que celle d'olibara. Cependant, je ne comprends pas pourquoi ton code renvoyait une exception. Est-ce que par hasard tes 2 classes (Test et Test2) font-elles parties du même assembly? Si elles se trouvent dans des assemblys différents, peut être que la référence vers l'assembly qui contient Test1 n'est pas bien à jour?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.2.1] Table toujours vide
    Par T_Joe dans le forum BIRT
    Réponses: 6
    Dernier message: 26/05/2008, 15h14
  2. [DOM] load() résultat toujours vide
    Par Orbiplanax dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/12/2007, 20h49
  3. [DOM] org.w3c.dom.Document toujours vide
    Par LGnord dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 05/12/2007, 13h45
  4. [AJAX] IE7, responseXML toujours vide
    Par Morphinof dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/10/2007, 18h25
  5. [D7][Oracle 8i] DBGrid toujours vide
    Par Magnus dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/10/2005, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo