如何解决此错误“无法对空引用执行运行时绑定”;c#
本文关键字:执行 引用 运行时 绑定 何解决 解决 错误 | 更新日期: 2023-09-27 17:52:43
我已经解析了一个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,那么你也可以使用null传播操作符?
,如
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)));