2009-08-06 2 views
0

Dans cette classe, je définis elp à ElType dans le constructeur.NullReferenceException lors de l'accès à une propriété en dehors du constructeur

Je peux accéder aux propriétés de elp bien quand dans le constructeur (le // ... bit est où je l'accès aux propriétés de elp), mais quand je tente d'accéder elp dans une autre méthode - ucp() - mon programme se bloque avec NullReferenceException.

Je n'arrive pas à comprendre ce que je fais de mal ici, même si ce serait probablement quelque chose de très simple.

[Serializable] 
public class ElBase : RectangleNode 
{ 
    public ElementParameters elp; 

    public ElBase(ElementParameters ElType) 
    { 
     this.elp = ElType; 

     // ... 
    } 

    private void ucp() 
    { 
     int i = 0; 

     if (this.elp.HasInput) 
     { 
      // ... 
     } 
    } 
+0

Il n'y a rien de mal avec le code affiché. S'il vous plaît poster plus. Essayez de créer un programme court mais complet qui présente le problème. –

Répondre

1

Ne peut pas dire grand-chose sans voir le code d'appel, mais ressemble ElementParameters passé au constructeur est NULL ou non initialisé.

5

Soit:

  1. elp est réglé sur null, peut-être même dans le constructeur s'il n'y a pas un chèque nul il
  2. Le getter de la propriété HasInput est de lancer le NullReferenceException basé sur le code à l'intérieur.
  3. Oh cher: elp est un champ accessible au public. Tout peut le mettre à zéro. : o Cela devrait être le numéro 1, mais j'ai regardé droit devant lui car personne ne rend les champs accessibles au public, donc ce n'est jamais un problème.
Questions connexes