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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Points : 30
    Points
    30
    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 éprouvé
    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
    Points : 1 046
    Points
    1 046
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Points : 30
    Points
    30
    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 éprouvé
    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
    Points : 1 046
    Points
    1 046
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Points : 30
    Points
    30
    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 éprouvé
    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
    Points : 1 046
    Points
    1 046
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Points : 30
    Points
    30
    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