Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决此错误;无法对空引用执行运行时绑定;C#_C# - Fatal编程技术网

如何解决此错误;无法对空引用执行运行时绑定;C#

如何解决此错误;无法对空引用执行运行时绑定;C#,c#,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之

我已经解析了一个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时,我会收到错误消息。我可以做什么来检查哪种情况为空? 四宗个案分别为:

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

做一个防御性的
null
检查

if(foo != null && foo.adjective != null)
如果您使用的是C#6,那么您也可以使用空传播运算符
类似于

if(foo?.adjective != null)
那么:

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

if(foo.形容词!=null)
?就像一个符咒。非常感谢。