设置下一条语句后,ASSIGNMENT上的C#NullReferenceException

时间:2019-03-28 09:38:56

标签: c# debugging nullreferenceexception

在调试时使用“设置下一条语句”时,即跳过某些语句时,有时会发生奇怪的事情:在变量的赋值上抛出NullReferenceException

当我跳过一条语句会导致引发异常(并可能在其他地方捕获该异常)时,似乎会发生问题。例如,我可能首先跳过了一个对象的构造,后来又跳过了对该对象的成员访问(该访问将抛出其自己的NullReferenceException)。

请注意,在任何地方都没有在null引用上访问任何成员的信息。似乎正在发生的事情是,正在对一个变量的赋值,该变量的声明已被跳过(我猜是通过某种优化)。通过逐步操作,我跳过了一个已经得出结论是不可避免的异常,因此从未期望使用该变量并且尚未声明该变量。

我声明上述原因,因为当我选择以下任何一种方法时问题都消失了:

  1. 结果而不是跳过将抛出的语句;或
  2. 在方法顶部声明变量。

我的解释正确吗?

哪个进程(例如JIT)导致此行为,为什么?

0 个答案:

没有答案