变量为空,但右手不为空

时间:2018-11-20 03:35:36

标签: c# visual-studio debugging visual-studio-2017

在调试时,我发现了一些奇怪的地方:

enter image description here

在鼠标悬停和手表中,结果var都显示为null,但实际上您的手表右侧显示的是非null值。

有什么想法吗?

EDIT :结果变量也在IF语句中声明,如下所示:

if (somethingIsTrue) { var result = xxx; }
else { var result = yyy; }

将第二个结果重命名为其他结果后,所有结果都开始正确显示。

1 个答案:

答案 0 :(得分:2)

当您的代码是这样的

if (somethingIsTrue) { var result = xxx; } else { var result = yyy; }

然后在该if语句的范围内(重新)声明“结果”变量。这意味着该值仅在该块内可用。

解决方案:在块外部声明变量(如果尚未执行此操作),然后在“ if”和“ else”块中删除“ var”