此代码在注释行中以“空引用异常”爆炸:
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项添加到listBox。
为什么这有问题?
注意:我在调试器中使用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());
......但无济于事。
答案 0 :(得分:1)
您似乎没有初始化listBoxCommandsSent
或listBoxCommandsSent.Items
。您可以添加
if(listBoxCommandsSent==null)
MessageBox.Show("listBoxCommandsSent is null");
if(listBoxCommandsSent.Items==null)
MessageBox.Show("Items is null");
检查什么是null。