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 :

exeption c# NullReferenceException


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut exeption c# NullReferenceException
    Bonjour, je suis actuellement sur un projet d'étude d'une station de pompage d'eau pour les agriculteur, pour cela je simule une arriver d'eau avec débit pression etc.. Je lance le débit grace a une scrool_bar mais lors de l'assignation de celle ci a une jauge (outils iocomp) une exception ce créée du type NullReferenceException
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<Compteur> listeCompteur; // Liste créee dans la classe ControleCompteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     lesCompteurs.Add(new Compteur(lesCanalisations[0],"1234"));
                lesCompteurs.Add(new Compteur(lesCanalisations[1],"7654"));
                lesCompteurs.Add(new Compteur(lesCanalisations[2],"6789")); 
                    // ajout de compteur dans la liste lesCOmpteur dans la classe Simulateur
    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
     
      public string numCompteur;
     
            public string NumCompteur
            {
                get { return numCompteur; }
                set { numCompteur = value; }
            }
     public Compteur(Canalisation canal, string numCompteur) {
     
                this.canal = canal;
                this.numCompteur = numCompteur;
                debitPrec = 0;
                monTimer = new Timer();
                monTimer.Tick += new EventHandler(timer_Tick);
                monTimer.Interval = 1000;
     
                monTimer.Start();
     
            } // classe compteur
    On retourne dans la classe simulateur ou l’exception ce passe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     private void trackBar1_Scroll(object sender, EventArgs e)
           {
     
               if (this.monCompteur.NumCompteur == "1234") // ici 
               {
                   maCentrale.getGauge2Compteur().Value = trackBar1.Value;
               }
     
           }
    voila j’espère que je ne vous est pas trop embrouillé ^^ merci d'avance de votre aide je retourne me creusé les méninges

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (this.monCompteur.NumCompteur == "1234") // ici
    si votre erreur se passe sur cette ligne , ou la variable monCompteur est null, ou le NumCompteur n'est pas initialisée
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Peux tu envoyer la stack d'erreur souvent l'explication est dedans

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Citation Envoyé par morgand Voir le message
    Peux tu envoyer la stack d'erreur souvent l'explication est dedans
    Bonjour, merci de votre réponse le stack me répond ça : " La référence d'objet n'est pas définie à une instance d'un objet."

    ma référence ( monCompteur) a la classe ControlCompteur est null pourtant j'ai accès a ces variables

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (this.monCompteur.NumCompteur == "1234") // ici
    si votre erreur se passe sur cette ligne , ou la variable monCompteur est null, ou le NumCompteur n'est pas initialisée
    Bonjour, Merci de votre réponse, monCompteur est bien null au debeugage pourtant l'agrégation est bien présente si non je n'aurais pas accès à la variable numCompteur ?

  6. #6
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Au vu de l'exception et de votre code c'était un ou l'autre mais je penchais plus effectivement pour monCompteur. Je suppose que votre NumCompteur est un type de base numérique donc lui ne devrais pas poser de problème.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Au vu de l'exception et de votre code c'était un ou l'autre mais je penchais plus effectivement pour monCompteur. Je suppose que votre NumCompteur est un type de base numérique donc lui ne devrais pas poser de problème.
    Oui je pense aussi numCopteur est un string retournée en get set et passer en paramètre d'une fonction Compteur pour ensuite crée 3 compteur avec des nom aléatoire que je chargerais dans un fichier xml mais le problème ici c'est que je ne comprend pas pourquoi ma référence a ma classe est null avez vous une idée ?

  8. #8
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Il serait intéressant de poster les 2 classes complètes car avec seulement les quelques morceaux de votre premier post, il est difficile de dire ce qui se passe entre l'instanciation et la fonction ou vous avez l'exception.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Je pense que cela viens des liste la référence qu'utilise ma condition fait appel a rien juste comme il n'est pas instancié donc il faut que je récupère ces info depuis la list j'avait pensé a un list.get mais ça n’existe pas dans ce conteste :/

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Citation Envoyé par Amiral62 Voir le message
    Je pense que cela viens des liste la référence qu'utilise ma condition fait appel a rien juste comme il n'est pas instancié donc il faut que je récupère ces info depuis la list j'avait pensé a un list.get mais ça n’existe pas dans ce conteste :/
    Rien compris
    MonCompteur est censé faire partie de la liste lesCompteurs ?

  11. #11
    Membre confirmé
    Femme Profil pro
    Etudiante en Développement
    Inscrit en
    Avril 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 106
    Par défaut
    micka132 a raison, pour corriger l'erreur il faut que tu fasses un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monCompteur = new Compteur(...);
    avant d'essayer d'accéder à monCompteur.NumCompteur
    Tu as bien créé des nouveaux compteurs dans ta liste lesCompteurs; mais monCompteur n'est jamais instancié

    Si tu souhaites récupérer un des compteurs de ta liste, il existe des méthodes :

    First() => renvoie le 1er élément
    Last() => envoie le dernier élément

    Tu peux aussi faire une recherche précise de cette manière :
    (exemple si tu veux récupérer celui qui a NumCompteur = 1234)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monCompteur = lesCompteurs.Find(p => p.NumCompteur = "1234");

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Bonjour, merci de vos réponse, j'ai trouvé le probléme il vennais du fait que les association crée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     maCentrale = new CentraleAcquisition(this);
                monControle = new ControleCompteurs(maCentrale, this.LesCompteurs);
    été mal placé on faisais appel a une référence d'objet qui n'été pas encore crée.

    la création d'un compteur n'été pas obligatoire comme ils sont crée dans les liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      lesCompteurs.Add(new Compteur(lesCanalisations[0],"1234"));
    voila je vous re merci pour votre attentions à bientôt

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

Discussions similaires

  1. servlet exeption Oc4j
    Par chouchou93 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/06/2006, 11h42
  2. gestion des exeptions sous delphi6
    Par meghaoui dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/05/2006, 14h30
  3. [VB.NET] System.NullReferenceException
    Par LeGrosWinnie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/12/2005, 13h31
  4. exeptions
    Par ZaaN dans le forum C++
    Réponses: 4
    Dernier message: 08/12/2005, 11h19
  5. [JDBC]Exeption inopportune
    Par ebaynaud dans le forum JDBC
    Réponses: 2
    Dernier message: 07/09/2004, 12h08

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