2011-04-28 3 views
0

Obtenir cette erreur sur ce code:référence d'objet non définie à une instance d'un objet

string pname = null; 
pname = ag.FirstOrDefault().arrangement.parent.name; 

lorsque vous appelez la ligne pname = ag.FirstOrDefault .....

Le parent.name déposé est vide (null), ce qui est bien je veux obtenir une chaîne vide (null) dans un tel cas. Comment puis-je me débarrasser de l'erreur?

Répondre

0

essayer

var obj = ag.FirstOrDefault(); 
if(obj !=null) 
pname = obj.arrangement.parent.name ?? String.Empty; 

ou vous pouvez essayer

//This will set the variable to null: 
    var obj = ag.FirstOrDefault(); 
    if(obj !=null) 
    pname = Convert.ToString(obj.arrangement.parent.name); 

Note:. Ag.FirstOrDefault() arrangement.parent.name est le type nullable

+2

Cela va jeter une exception si 'ag.FirstOrDefault()' renvoie null – Leons

+0

Le parent.name est vide (null) - cette ligne est écrite par op de toute façon je suis mise à jour mes années –

6

Soit ag est nulle, le FirstOrDefault appel renvoie null, arrangement est null ou parent est null.

Seulement vous êtes en mesure de déterminer lequel de ceux est réellement le coupable.

+0

+1 Je recommanderais d'utiliser débusquer ou diviser en plusieurs déclarations. – Euphoric

0

Vous ne pouvez pas accéder aux propriétés d'un objet nul. Si ag.FirstOrDefault() renvoie null, vous ne pourrez pas accéder à arrangement.

var temp = ag.FirstOrDefault(); 
string pname = (temp!= null) ? temp.arrangement.parent.name : null; 

Vous devrez peut-être faire d'autres vérifications nuls.

0

Si la propriété ag.FirstOrDefault(). Arrangement.parent.name est nulle, cela signifie que l'objet ag est null aussi. C'est la raison pour laquelle vous obtenez une erreur de référence d'objet.

La réponse fournie par Leons est en fait ce que j'allais suggérer. Vous devez faire des recherches sur le problème, c'est l'une des choses les plus simples à éviter (en essayant de référencer un objet nul) en programmation.

+0

Cela ne signifie pas nécessairement que 'ag' est nul. 'ag' pourrait être nul; la sortie de 'FirstOrDefault' pourrait être nulle; le membre 'arrangement 'pourrait être nul; le membre 'parent' pourrait être nul. – LukeH

Questions connexes