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

ASP.NET Discussion :

[C#] Passage en paramètre d'une ArrayList


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut [C#] Passage en paramètre d'une ArrayList
    Bonjour,

    Je passe en paramètre une ArrayList au moment où j'appelle une méthode. Mais dans la méthode qui reçoit l'ArrayList, lorsque que j'essaye d'accéder à ces items, j'ai le message d'erreur suivant : Object reference not set to an instance of an object.

    Pourquoi ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Par ce que ton ArrayList vaut null, tu ne l'as pas initialisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList MonArrayList = new ArrayList();
    Il faut penser (ou savoir) que tout (ou presque) en .Net fonctionne par référence. Qd tu écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList MonArrayList;
    Tu définis une variable MonArrayList, qui sera une référence d'ArrayList, mais tant que tu ne l'initialises pas, ta référence ne pointe pas encore sur un ArrayList, elle vaut null.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Merci pour ta réponse.

    Oui, je me doutais que je n'instanciais pas mon ArrayList dans la méthode qui recoit l'ArryList.

    Mais quand on écrit le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public void MaMethode(ArrayList monArrayList){
    ...
    }
    A quel moment faut-il instancier l'ArrayList ? Je pensais qu'elle était automatiquement instancié lors de l'appel de la méthode.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Ben non enfin, tu déclares une méthode qui prend un ArrayList en paramètre, c'est bien a toi de lui fournir celui-ci correctement initialisé, avec des valeurs dedans même éventuellement. Si le framework (ou le langage) s'amusait à réinitialiser les variables que les fonctions prennent en parametre, comment ferais-tu pour donner un ArrayList avec des valeurs dedans ?

    A quel moment faut-il instancier l'ArrayList ?
    Ben il faut l'instancier avant de le transmettre à ta fonction !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ArrayList MaVariable = new ArrayList();
     
    //Ici tu fais ce que tu veux, par exemple ajouter un entier
    MaVariable.Add(300);
     
    //Et tu appelles ta fonction
    MaMethode(MaVariable);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Je crois qu'il y a eu malentendu !!! Car c'est justement ce que j'ai fait !
    Je ne l'ai pas précisé, mais c'était évident que j'avais instancié mon ArrayList AVANT de la passer en paramètre !

    Mais dans la méthode qui reçoit l'ArrayList, il m'est imposible d'accéder à ma collection...

    Relis le post depuis le début sachant cela, tu verras que mon problème est tout autre !!

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Ok, c'etait pas clair. Dans ce cas, et si l'exception se produit bien dés l'acces à une méthode ou propriété de ton ArrayList, c'est probablement que tu l'as qque part avant réinitialisé avec une valeur null.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Effectivement, le remplissage posait problèmes dans certains cas de figures.

    Merci pour tes réponses.

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

Discussions similaires

  1. Passage de paramètre d'une classe à une autre
    Par semenzato dans le forum C++
    Réponses: 3
    Dernier message: 21/09/2005, 13h59
  2. passage de paramètres ds une popup
    Par larafa dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/09/2005, 11h27
  3. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  4. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46
  5. Réponses: 2
    Dernier message: 24/11/2004, 10h01

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