C# 在pictureBox vb c中加载图像时出现NullReferenceException#

C# 在pictureBox vb c中加载图像时出现NullReferenceException#,c#,C#,我是visual basic的初学者,我正在开发这个游戏,它应该加载存储在图片框数组中的图像并随机显示它们,但我一直在这一行中遇到运行时错误“NullReferenceException”: if(egypt[randomNumber]==egypt[0]) 之前的台词是: PictureBox [] egypt = new PictureBox [5]; Image egypt1 = Image.FromFile(Application.StartupPath + @"\image\egy

我是visual basic的初学者,我正在开发这个游戏,它应该加载存储在图片框数组中的图像并随机显示它们,但我一直在这一行中遇到运行时错误“NullReferenceException”:

 if(egypt[randomNumber]==egypt[0])
之前的台词是:

PictureBox [] egypt = new PictureBox [5];
Image egypt1 = Image.FromFile(Application.StartupPath + @"\image\egypt1.png");
egypt[0].Image = egypt1;

谢谢。

我怀疑错误实际上出现在
egypt[0].Image=egypt1
行上,因为Visual Studio中存在一个错误,这意味着异常助手偶尔会高亮显示引发异常的行之后的行

无论如何

egypt[0]
null
,因为您尚未为其指定实际对象。您只为数组保留了空间,但没有在其中放置任何内容(创建时数组中充满了空值)

您需要在它之前添加aline,以便它的内容如下:

egypt[0] = new PictureBox(); // This is the new line
egypt[0].Image = egypt1;     // This is the existing line

我怀疑这会解决您的问题。

您必须创建pictuebox的实例并通过写入将其分配给数组

  egypt[0].Image = egypt1;
您正在尝试访问空数组中位于位置0的PictureBox的.Image属性。埃及[0]的值为NULL。通过在…之前添加以下行来指定该对象的实例

   egypt[0] = new PictureBox();

顺便说一句:我不知道你的具体情况,但我不会创建一个PictureBox数组,最好将图像加载到数组或Imagelist中,并在需要时将其分配到图片框中。。。除非您希望同时显示它们中的每一个;)

您应该从问题中删除
vb.net
标记。我会记住这一点,谢谢。