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 :

erreur de nullRéferenceException


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut erreur de nullRéferenceException
    bonjour,
    je suis débutante en C#
    j'ai un tableau de liste de particule(une particule est un objet)
    et à chaque fois que j'utilise tab[i].count ou une autre propriété ou methode. et il m'affiche l'erreur NullRéferenceException
    sachant que le tableau est remplit en copiant les particule d'un tableau dans une liste.

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut.

    Sans un bout de code, difficile de t'aider .

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    voici, le code
    en effet, swarm est un tableau de particule
    tabPbest est un tableau de liste de particule

    chaque liste de tableau tabPbest contient la particule swarm[i](l'élement du tableau swarm)

    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
    for (int i = 0; i < Swarm.Length;i++)
                {   
                    pbest.Add(Swarm[i]);
     
                 tabPbest[i]=pbest;
                // pbest.Remove(Swarm[i]);
     
                }
     
     
                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();
                }

  4. #4
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Bonjour,
    Definies-tu la taille de tabPbest si oui a combien? Car s'il est plus grand que ton nombre d'elements dans swarm tu leves cette NullException

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    il ont la même taille;

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    J'ai remplacé tes particules par des entiers pour ton exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                int[] Swarm = new int[] { 15, 16, 115, 161651, 1655, 9, 8 };
                List<int> pbest = new List<int>();
                List<int>[] tabPbest = new List<int>[7];
    En utilisant ce code je n'ai pas d'Exception, dis moi si mon code est loin d'etre similaire.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    si, tu remplace les particules par des entier, te code est le même
    pour moi j'ai un pb d'exception

  8. #8
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Citation Envoyé par emna hakem Voir le message
    si, tu remplace les particules par des entier, te code est le même
    pour moi j'ai un pb d'exception
    Tu ne fais pas vraiment avancer le problème . C'est à quelle ligne que l'exception est levée ? Qu'affiche la Stack Trace ? Etc. Tu peux donner encore plein d'éléments...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    la classe particule contient 2 attribut :

    position: une liste de matrice <int [,]>
    vitesse: une liste de matrice<int[,]>

    et la faute est au niveau de l'instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int j = 0; j < tabPbest[i].Count; j++)

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    En effet, si je remplace par des entier , et comme vous avez dit, il n'y a pas gérération de cet erreur,
    j'ai pas compris où est le pb????

  11. #11
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Le seul moyen a mon avis d'avoir une erreur à ce niveau est d'avoir une liste tabPbest plus grande que le nombre de particule Swarm ce qui va amener à avoir une valeur de i supérieur au nombre réel d’élément dans ton tableau.
    Vérifie que "i" ne dépasse pas ce nombre.

    Quel que soit le type d’élément dans tes tableaux le résultat reste le même.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    nn, ce cas ne se présente pas car les 2 tableaux swarm et tabPbest ont la même taille
    tabPbest [i] (qui est une liste de particule) doit prendre l'élement la particule de Swarm[i]
    ??????

  13. #13
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    qui est une liste de particule) doit prendre l'élement la particule de Swarm[i]
    Tu peux re-expliquer stp je n'ai pas compris ce que tu veux dire par la.

  14. #14
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Dans le debugger regarde ce que vaut tabPbest[i]. Avec ton erreur on dirait qu'il est vide...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    en effet,
    j'ai un tableau de particule swarm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     particule[] Swarm = new particule[taillePop];
    un tableau tabPbest de liste de particule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     List<particule> [] tabPbest= new List<particule>[taillePop]
    le pb que chaque élement de tabPest (liste) doit recevoir l'élement particule swarm[i]

  16. #16
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Je te propose de faire ceci:

    Dans visual tape CTRL+ALT+E et coche toutes les levé d'exceptions lance ton programme et donne nous les valeurs quand le programme s'arrete:

    taillePop, i , j ,tabPbest

  17. #17
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    j'ai lancé l'exécution, est elle prend beaucoup du temps, elle ne s'arrête pas

  18. #18
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Je cherche toutes les pistes possibles.. ta methode identifier elle fait quoi? est ce que tu pourrais donner le code de la methode stp.

  19. #19
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    merci!!!!
    la methode identifier: affiche les position de la particule
    en effet, une particule à deux attribut:position et vitesse (qui sont de type list<int [,]>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     class particule
        {
            List<int[,]> position;
            List<int[,]> vitesse;
    le code est :
    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
     public void indentifier()
            {
                int[,] inter;
                for (int i = 0; i < position.Count(); i++)
                {
                    inter = position[i];
                    Console.WriteLine("la variable ", i);
     
                    for (int j = 0; j < inter.GetLength(0); j++)
                    {
                        for (int k = 0; k < inter.GetLength(1); k++)
                        {
                            Console.WriteLine(inter[j, k]);
                        }
     
                    }
                }

Discussions similaires

  1. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20
  2. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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