0

このコードは、コメントされた行で「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());

...しかし役に立たない。

4

1 に答える 1

1

初期化していないようですlistBoxCommandsSentまたはlistBoxCommandsSent.Items追加できます

if(listBoxCommandsSent==null)
    MessageBox.Show("listBoxCommandsSent is null");
if(listBoxCommandsSent.Items==null)
    MessageBox.Show("Items is null");

nullが何であるかを確認します。

于 2013-02-13T18:47:06.390 に答える