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 :

exception dans un tableau de liste


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut exception dans un tableau de liste
    slt
    j'ai à manipuler un tableau tabPbest dont les éléments sont des listes de particules. et j'ai à afficher les de la liste en utilsant la methode "identier".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     for (int i = 0; i < tabPbest.Length; i++)
                 {
     
                     Console.WriteLine("le pbest de la soltion", i);
                     for (int j = 0; j < tabPbest[i].Count; j++)
                         tabPbest[i][j].indentifier();
                 }
    en exécutant le programme une erreur NullRéférence est générer sachant que la liste tabPbest n'est pas vide. car quand j'affiche le nombre des éléments de la liste tabPbest[i] il m'indique que c'est 1(c'est la vrai valeur)?????

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Sans la définition du tableau, il va êter difficile de répondre.

    Est ce un multidimensionel ou un "jagged" ?

  3. #3
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    il s'agit d'un tableau dont les élements sont des liste de particule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     List<particule>[] tabPbest = new List<particule>[taillePop];

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Tu as peut être des éléments dans la liste, mais il est probable que certains soient null. D'où l'erreur car tabPbest[i][j] renvoie null et donc l'appel à tabPbest[i][j].indentifier(); lève l'exception en question.

    Le plus simple c'est encore de débuger pour regarder le contenu de liste. Les espions, espions express, debug pas à pas... sont des outils bien pratiques et c'est fourni de base avec Visual Studio, alors commence par t'en servir. Ca te simplifiera la vie pour comprendre le pourquoi des erreurs que tu rencontres

  5. #5
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    Le pb que les listes ne sont pas vides lorsque j'ai écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int i=0;i<tabPbest.Length;i++)
                    Console.WriteLine(tabPbest[i].Count);
    il m'affiche le nb d'éléments dans la liste.

  6. #6
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonsoir.

    J'aurais effectivement parié sur un sous-tableau nul mais bon... Cela dit le code que tu as fourni contient une erreur, c'est "Length" pour un tableau et non "Count" (ou alors Count() pour la méthode d'extension ajoutée par Linq). Si ce n'est pas ça, alors ça vient de l'intérieur de la méthode "identifier".

    Le mieux dans ce cas est de regarder exactement où l'erreur se produit et, avec le débogueur interactif, d'examiner les variables pour trouver un null. A défaut, commence par ajouter une ligne dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.Diagnostics.Debug.Assert(tabPbest[i] != null, "Oups ! Le sous-tableau " + i + " est null"); 
    Console.WriteLine("le pbest de la soltion", i)

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par emna hakem Voir le message
    il s'agit d'un tableau dont les élements sont des liste de particule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     List<particule>[] tabPbest = new List<particule>[taillePop];
    Question : pourquoi utiliser cette déclaration un peu batarde plutot que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     List<List<particule>> tabPbest = new List<List<particule>>
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     particule[,] tabPbest = new particule[x,y]
    (bref du "full list" ou du "full array")

  8. #8
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    peut être liste de liste de particule mais matrice c'est un peu difficile . en effet j'ai utiliser la liste car je doit ajouter , supprimer des particules à chaque itération.

  9. #9
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Certains l'ont déjà dit : debug -> pas à pas et contrôle chaque élément, il y a un null quelque part et tu fais un Null.Toto... d'où l'exception, avec un peu de patience cette exception est facille à éliminer.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2009, 21h38
  2. Réponses: 4
    Dernier message: 03/05/2006, 14h30
  3. Réponses: 3
    Dernier message: 24/04/2006, 19h56
  4. Réponses: 9
    Dernier message: 04/04/2006, 16h59
  5. [débutant] Liste d'items dans un tableau
    Par Le Furet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/03/2006, 21h23

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