为什么在下面代码中的"f++"部分抛出了一个异常("IndexOutOfRangeException was unhandled by user code")?
for (int f = 0; f < gnf; f++)
{
fieldNames[g] = grid.FieldName(f);
}
错误在于代码的“fieldNames[g] = ...”部分,我的算法应该是:
for (int f = 0; f < gnf; f++)
{
fieldNames[f] = grid.FieldName(f);
}
这不会崩溃。但是当错误的(顶部)代码运行时,调试器未显示“fieldNames [g] ...”行上的异常。
我现在没有使用线程,因此我不认为这是“在线程程序中进行调试异常是自杀性的”情况之一。
调试器为什么显示异常的位置不对?是否是优化或其他原因?还有其他人遇到过调试器像这样“错误”的情况吗?