このコードは、コメントされた行で「NullReferenceException」で爆発しています。
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であることを示しています。2番目のMessageBox.Showに到達しました(「forループになりました」)。3番目のMessageBox.Showに到達していません。したがって、問題はアイテム0をlistBoxに追加することです。
なぜこれが問題になるのですか?
注:デバッガーでステップスルーする代わりにMessageBox.Show()を使用している理由は、SOの他の場所に記載されています。ひどいことに、VS2003の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());
...しかし役に立たない。