2016-06-28 29 views
-1

ich eine Json Antwort analysiert habe „Can not Laufzeit verbindlich auf einer Nullreferenz perform“. Dann habe ich den SBB in einem dynamischen Objekt wie folgt gespeichert, um eine spezifische Information eines gegebenen Wortes, zum Beispiel Nomen, abzurufen. Weil es jedes Mal Informationen über ein einzelnes Wort zurückgibt.Wie kann ich diesen Fehler beheben C#

dynamic foo = JObject.Parse(sbb); 
var ant = foo.adjective.ant; 

Aber nach foo ist es nicht immer folgen Adjektiv es sonst Substantiv oder etwas sein kann, so dass, wenn ich versuche, var zu sehen, ob null ist habe ich die Fehlermeldung. Was kann ich tun, um zu prüfen, welcher Fall null ist oder nicht? Die 4 Fälle sind:

foo.adjective.ant; foo.noun.ant; foo.adverb.ant; foo.verb.ant; 
+1

'if (foo.adjective! = Null)'? – CodeCaster

+0

funktioniert wie ein Charme. Danke – BillUser88

Antwort

0

Machen Sie eine defensive null Scheck wie

if(foo != null && foo.adjective != null) 
+0

Vielen Dank es funktioniert – BillUser88

0

Wie wäre:

var ant = foo.adjective != null ? foo.adjective.ant : 
      (foo.noun != null ? foo.noun.ant : 
      (foo.adverb != null ? foo.adverb.ant : 
      (foo.verb != null ? foo.verb.ant : null))); 
+0

So viele ternaries !!! –

Verwandte Themen