C#:在属性';值有意外的结果

C#:在属性';值有意外的结果,c#,dynamic,C#,Dynamic,dynamics类型对我来说是一件好事。作为动态对象接收响应并使用其属性,而不必定义模型,可以节省大量时间。我只遇到了一个问题,但还没有解决: 上面的屏幕截图中发生了什么以及解决方案是什么?如您所见,变量resultGetBudget已正确初始化,并且有code和当前金额属性的可用值。然而,当我稍后尝试访问这些变量时,其中一个变量突然变为null。更奇怪的是,当我不把它们放在变量中时,它们都是null 我以前研究过这个问题,发现了一些不总是有效的解决方法,如Microsoft MVP建议的(再

dynamics
类型对我来说是一件好事。作为动态对象接收响应并使用其属性,而不必定义模型,可以节省大量时间。我只遇到了一个问题,但还没有解决:

上面的屏幕截图中发生了什么以及解决方案是什么?如您所见,变量
resultGetBudget
已正确初始化,并且有
code
当前金额
属性的可用值。然而,当我稍后尝试访问这些变量时,其中一个变量突然变为
null
。更奇怪的是,当我不把它们放在变量中时,它们都是
null

我以前研究过这个问题,发现了一些不总是有效的解决方法,如Microsoft MVP建议的(再也找不到源代码),但现在我第二次遇到了这个问题,这真的让我很困扰

应该是

resultGetBudget?.result.current_amount
我认为,“当前金额”在一个“结果”数组中,“代码”之所以有效,是因为它在数组之外

将其视为json应该是这样的:

main_object{
   code:200
   result: {
        start_amount:200
        current_amount:200
        [..... other stuff.....]
   }
}

我我不知道我怎么会错过这个。我怀疑我过去的自我,想知道以前是否也发生过同样的事(我不认为是这样)。你的解决方案成功了,谢谢you@WouterVanherck你错过了它,因为你用了一个虚假的祝福。。。现在,您将花更多的时间调试代码,您的代码将有一种javascript-y的感觉,在这种情况下,所有内容都会工作,直到因为一个字母被更改而停止工作。想想看,这个人为错误并不能解释这样一个事实:如果我不使用变量并直接使用resultGetBudget?。代码,其结果仍然为空?我认为我的问题不止这些,即使我现在有了解决办法。此外,我相当肯定,在过去,我的对象的结构类似于
dynamic obj=new{testVarWithVal,testVarWithoutVal=“test”}因此没有数组或内部对象。。。我也很高兴知道这一点。