此代码在带有“Null Reference Exception”的注释行上爆炸:
MessageBox.Show(string.Format("arrLst count is {0}", arrLst.Count));
for (int i = 0; i < arrLst.Count; i++)
{
MessageBox.Show("Made it into for loop");
listBoxCommandsSent.Items.Add(arrLst[i]); // <-- blows up here
MessageBox.Show("Made it past first listBoxCommandsSent.Items.Add()");
. . .
arrLst 是一个 ArrayList
第一个 MessageBox.Show 告诉我 arrLst 的计数为 8 第二个 MessageBox.Show 已达到(“使其进入 for 循环”)第三个 MessageBox.Show 未达到;所以,问题是将项目 0 添加到列表框中。
为什么这是有问题的?
注意:我使用 MessageBox.Show() 在调试器中单步执行它的原因在 SO 的其他地方都有记录;在一个疯狂的地狱中,我无法从 VS 2003 的 XP 模式中连接到我的手持设备。
更新
甚至添加这些:
MessageBox.Show(string.Format("arrLst element 0 is {0}", arrLst[0].ToString()));
MessageBox.Show(string.Format("arrLst element 0 from i is {0}", arrLst[i].ToString()));
...告诉我我的期望(在这两种情况下,正如预期的那样):
arrLst element 0 is ! 0 200 200 210 1
arrLst element 0 from i is ! 0 200 200 210 1
我还在作业中添加了一个“ToString”,所以它现在是:
listBoxCommandsSent.Items.Add(arrLst[i].ToString());
……但无济于事。