为什么Visual Studio调试器会跳过有效行?

时间:2018-02-28 07:00:16

标签: vb.net debugging visual-studio-2017

我正在使用Visual Studio 2017中的VB.NET程序。调试器每次都会完全跳过一段代码。我已经重写了十几次试图让它工作。代码优化已关闭。我尝试删除解决方案文件夹和子文件夹中的每个文件,除了源文件和从头开始重建。没变。谷歌没有给我一个解决方案。

enter image description here 在这种情况下,ClientList有两个元素,因此.Count是2.
我想从最后一个元素遍历到第一个元素,所以我在第209行使用for循环。
在调试时,我验证计数是2,因此调试器应该通过for循环两次。但是在第209行之后,它直接跳到第228行。

我包含第二个循环用于比较,因为它总是调试很好,即使它做同样的事情,迭代ClientList的元素。

任何人都可以为我解决这个问题吗?我已经花了大部分时间在这上面,并且在我找到解决方案之前无法再进一步。

1 个答案:

答案 0 :(得分:2)

Step -1添加到For语句中,它应该按预期工作。

For ClientIndex As Integer = ClientList.Count -1 To 0 Step -1

摘自documentation

  

步骤的默认值为1.

意味着,没有Step -1循环计数器的值会递增,因此循环永远不会运行,因为1ClientList.Count-1)已经大于0