在数组

时间:2017-10-14 10:47:24

标签: c# arrays

我试图使用数组来制作一个太空入侵者游戏来存储入侵者,但是每次运行代码时它都会冻结,并且我的数组的错误大小错误。

错误:

  

未处理的类型' System.OutOfMemoryException'发生在mscorlib.dll

有人可以帮忙吗?这是我的代码:

class invaders
    {
        ingame game = new ingame();
        PictureBox[] spaceinvaders = new PictureBox[100];
        public void spawn(int level)
        {
            PictureBox invader = new PictureBox();
            Bitmap img = (WindowsFormsApplication1.Properties.Resources.SpaceInvader);
            for (int n = 1; n == 3 + level; n++)
            {
                for (int i = 12; i == 493; i = i + 37)
                {
                    invader = new PictureBox();
                    invader.Size = new Size(12, 12);
                    invader.Image = img;
                    spaceinvaders[i] = invader;

                    spaceinvaders[i].Location = new Point(i, n);
                }
            }
            game.Controls.AddRange(spaceinvaders);
        }
    }

1 个答案:

答案 0 :(得分:1)

for循环的条件错误。您需要使用<代码而不是==。将针对每次迭代检查中间表达式,并且仅当检查的输出为true时才执行循环执行。

由于你要求内循环从12转到493,它就是这样做的。除了493超过100,因此数组在其边界之外被访问,因此你应该得到一个超出界限的#34;例外。

我无法重现您的错误。请修复您的代码,使其具有可重现性。