我在调试时在Visual Studio中使用断点。看看下面的代码:
Try
Dim Test1 As String
Throw New Exception
Catch ex As Exception
Msg("test")
End Try
我注意到如果我在第2行放置断点(声明Test1)然后停止程序(通过按停止按钮),将出现一个消息框,说明测试。如果程序已停止,如何显示消息框?这是一个非常简单的例子。它通常发生在代码更复杂的时候。
答案 0 :(得分:0)
虽然您希望能够这样做,但是您通常无法断开变量的声明,因为编译器会将其添加到生成的方法的IL的本地,并且它将成为方法堆栈准备的一部分。实际上,到方法运行时,变量已经被声明了。
因此异常提升实际上是第一件事。
正如@sixlettervariables所说,如果你分配变量,那么它就不同了,因为那是用户代码,它是方法体的一部分。
答案 1 :(得分:0)
你应该以不同的方式看待它,而不是以平价线为基础。
调试器允许您包含冻结程序执行的指令。 但是因为你只是声明一个变量,所以此时无法冻结程序。
实际上,在您“击中”该行之前已经声明了该变量。
下一个可以冻结程序的地方是下一条指令(而不是声明)。您的下一条指令是Msg("test")