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

Windows Forms Discussion :

new : Object reference not set to an instance of an object


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut new : Object reference not set to an instance of an object
    Je reçois un message récurrent sur une méthode dans la black box d'une classe qui passe en stack un string sur un nouvel objet.

    Navigator instancie une classe qui retourne un string pris en compte pour _navigator.pushStack ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            public void pushStack(string pMessage)
            {//
                this._stack[this._pStack++] = pMessage;
            }//
    Par ailleurs, dans une vue IHM.cd j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error	1	Inconsistent accessibility: parameter type 'Dalbe.Components.Controler' is less accessible than method 'Dalbe.IHM.IHM(Dalbe.Components.Controler)'	D:\_SRC_\VS_C#\_DB_\Dalbe\Vue\IHM.cs	17	16	Dalbe
    pour le constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            public IHM(Controler pControler)
            {
                InitializeComponent();
                _controler = pControler;
            }
    Quelqu'un à une suggestion ?
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Pour la première erreur, apparemment une des variables vaut null à un moment où une valeur est attendue. Mais laquelle ? Et donc : comment est-on arrivé jusqu'à cet endroit du code ? quelles opérations les variables ont-elles subies ?
    Si tu n'arrives pas à relire ron code et comprendre tout seul d'où vient l'erreur, il nous faudra plus d'infos si tu espères que nous ayions une idée.
    Je *pense* que tu appelles pushStack à un moment où this._stack n'a pas été initialisé et vaut encore null, mais sans plus de précisions impossible de *savoir*.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error	1	Inconsistent accessibility: parameter type 'Dalbe.Components.Controler' is less accessible than method 'Dalbe.IHM.IHM(Dalbe.Components.Controler)'	D:\_SRC_\VS_C#\_DB_\Dalbe\Vue\IHM.cs	17	16	Dalbe
    Pour cette erreur, c'est simple :
    - le constructeur est public, ce qui signifie qu'il peut être appelé depuis n'importe quelle autre classe
    - apparemment, le type du paramètre, càd la classe Dalbe.Components.Controler, est "moins accessible" que "public", c'est-à-dire qu'elle est interne ou protégée ou privée (faut voir dans ton code) donc si je prends "n'importe quelle autre classe", a priori elle n'y aura pas accès
    - ceci est absurde, car celà voudrait dire que la "n'importe quelle autre classe" connaît le constructeur, doit pouvoir l'utiliser, mais ne pourra jamais le faire car elle ne sait pas quoi lui donner en argument puisqu'elle ne connaît pas le type du paramètre attendu...
    D'où l'erreur.
    Les paramètres d'une fonction doivent être au moins aussi accessibles que la fonction elle-même. Il faut revoir la conception des classes : soit le constructeur est "trop" accessible par rapport à ce dont tu as besoin, soit la classe Controler ne l'est "pas assez".

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu as bien fait un

    this._stack = new ...

    quelque part dans ton code ?

  4. #4
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    Merci à vous deux,

    concernant la deuxieme erreur Error 1 Inconsistent accessibility. J'ai pu resoudre le probleme en declarant les classes en public bien que je n'en vois pas la raison vu que toute mes classes ne portaient pas ces attributs et que ça fonctionnait en mode console. Le probleme est survenu dès que j'ai rajouté un formulaire public partial class... Je n'aime pas trop de devoir rajouter des supplément dans ma déclaration. Y a t'il un autre moyen ? Mais en attendant ça marche.

    Concernant le stack, c'était bien ça : il manquait le new ...
    Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...

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

Discussions similaires

  1. erreur: Object reference not set to an instance of an object.
    Par soumamort dans le forum Windows Forms
    Réponses: 14
    Dernier message: 02/05/2008, 17h31
  2. Réponses: 6
    Dernier message: 01/04/2008, 18h36
  3. Object reference not set to an instance of an object
    Par DjRusty dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 07h26
  4. Réponses: 1
    Dernier message: 28/12/2006, 11h05
  5. Réponses: 1
    Dernier message: 20/04/2006, 12h09

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