我怎样才能解决这个错误“无法对空引用执行运行时绑定”C#

时间:2016-06-28 20:36:48

标签: c#

我已经解析了Json的回复:

string url = "http://words.bighugelabs.com/api/2/API KEY/" + word.ToString() + "/json";

并将其存储在名为sbb的字符串中。 然后我将sbb存储在动态对象中,以便检索给定单词的特定信息,例如名词。因为它每次都返回有关单个单词的信息。

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

但是在foo之后它并不总是遵循形容词它可能是名词或其他东西,所以当我试图看看var是否为null时,我有错误信息。我该怎么做才能检查哪个案例为空? 4例是:

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

2 个答案:

答案 0 :(得分:1)

一样进行防御null检查
if(foo != null && foo.adjective != null)

如果您使用的是C#6,那么您也可以使用空传播运算符?,如

if(foo?.adjective != null)

答案 1 :(得分:0)

怎么样:

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)));