我收到NullReferenceException错误,但我不知道为什么?[复制]

I get NullReferenceException error but I don't know why? [duplicate]

提问人:Danilo Ivanovic 提问时间:6/2/2018 最后编辑:CœurDanilo Ivanovic 更新时间:12/26/2018 访问量:51

问:

我知道这个错误是在 object 为 null 的地方显示的。但就我而言,我不确定为什么会显示它。 我尝试在每 30px 的宽度上随机创建 10 个 PictureBox 对象,timer_tick这是我的代码。

PictureBox[] meteor;
int i=0;
Random rnd = new Random();

private void timer1_Tick(object sender, EventArgs e)
{
    if(i<10)
    { 
    int pozicija = rnd.Next(1, 25);
    pozicija *= 30;
    meteor[i] = new PictureBox()
    {
        Name = "pictureBox",
        BackColor = Color.Transparent,
        Size = new Size(80, 60),
        Location = new Point(pozicija, 0),
        Image = imageList2.Images[0],
    };
    this.Controls.Add(meteor[i]);
    }
    i++;
}

错误指向此代码行

this.Controls.Add(meteor[i]);

为什么 Visual Studio 显示此错误?

C# Visual-Studio NullReferenceException

评论

0赞 GSerg 6/2/2018
从该代码中,您应该在前面获得 NullReferenceExeption,位于 。meteor[i] = new PictureBox()
0赞 Danilo Ivanovic 6/2/2018
@SebastianHofmann我读到了,但我可以找到解决方案,我说我知道它是什么。
1赞 Sebastian Hofmann 6/2/2018
在您的情况下,您没有初始化,它应该是(或任何其他范围)。PictureBox[] meteor;PictureBox[] meteor = new PictureBox[1000];
0赞 Danilo Ivanovic 6/2/2018
@SebastianHofmann这就是我一直在寻找的,谢谢,但不需要负面积分
0赞 maccettura 6/2/2018
@DaniloIvanovic这就是为什么调试器是必不可少的工具。在向任何人寻求帮助之前,请务必使用它

答:

1赞 Islam El-gendy 6/2/2018 #1

在使用数组之前,必须先实例化数组,如下所示:

PictureBox[] meteor = new PictureBox[10];

此外,我假设已经定义并且您已经向其添加了图像。imageList2