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 :

NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet
    Bonjour,

    Je développe une application en c# et j'ai depuis quelques temps le message d'erreur suivant :

    NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
    J'ai une classe Element et une classe Problem.

    Voici mon code:

    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
    Problem[] tab = new Problem[100];
                tab = files(); // la méthode files() donne commen résulatat un tableau de type Problem
     
              Element[] T = new Element[100];
          T = tab[0].getElements(); // donne un tableau de type Element
     
         for (int j=1; j<T.Length-1; j++)
         {
             Element eleme;
                 eleme= new Element();
            eleme.setWidth( T[j].getWidth()); // chaque element a un width
            eleme.setHeight(T[j].getHeight()); chaque element a un height
     
              int x = eleme.getWidth();
              int y = eleme.getHeight();
              int i = j-1;
              Element elem = T[i];
     
              while (i >= 0 && ((elem.getWidth() < x) || ((elem.getWidth() == x) && (elem.getHeight() < y))))
              {
                  Element elem1 = T[i+1];
     
                  elem1.setWidth(elem.getWidth());
                  elem1.setHeight(elem.getHeight());
                            i = i-1;
             }
     
        }
    J'ai bien instancié tout les objets et j'ai pas compris comment résoudre ce problème.

    Merci bien d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Exposé comme ça on pourra pas vraiment t'aider si tu nous dis pas à quelle ligne de ton code t'as l'exception ?

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 41
    Points : 59
    Points
    59
    Par défaut
    Bonjour.

    As tu bien vérifié que les méthodes :
    files() et getElements(), ne sont pas susceptibles de renvoyer des valeurs null, car si c'est le cas, c'est normal que tu obtient ce message d'erreur.
    On ne peut pas accéder à un élément de ton tableau si celui ci est null. Le fait de les avoir instanciés avant ne sert à rien dans ton code car tes objet pointeront sur ce que ces deux méthodes renverront.

    Lorsque tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Problem[] tab = new Problem[100];
    Ton objet tab sera bien instancié.

    Mais lorsque tu fais :
    Si files() renvoi null alors tab sera null et tab[0] génèrera une NullReferenceException.

    Idem pour ton tableau T

    Cordialement.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/09/2007, 10h38
  2. Réponses: 2
    Dernier message: 09/09/2007, 14h25
  3. Réponses: 8
    Dernier message: 04/06/2007, 16h20
  4. Réponses: 24
    Dernier message: 01/06/2007, 09h26
  5. Réponses: 8
    Dernier message: 11/07/2006, 17h27

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