访问数组时出错

时间:2014-12-05 23:11:19

标签: c# arrays

我收到了错误

  

[]内的索引数目错误;预期2

靠近代码底部。我不确定为什么。我试图构建一组数组进行操作,但此时我已经挂断了。

public static void Main (string[] args)
{
    Initialize ();

    while (true) {
        SystemEvents.CheckEvents ();
        Update ();
        Render ();
    }
}

public static void Initialize ()
{
    // Set up the graphics system
    graphics = new GraphicsContext ();

    gen = new Random ();
    Texture2D pTex= new Texture2D("Application/assets/plane.png",false);
    player= new Sprite(graphics,pTex);

    player.Position.X = graphics.Screen.Rectangle.Width / 2 - player.Width / 2;
    player.Position.Y = graphics.Screen.Rectangle.Height / 2 - player.Height / 2;

    xpos = 0;
    ypos = 0;

    pieces = new Texture2D[6];

    bg = new Sprite[9,12];

    pattern = new int[9,12];

    for (int i=0; i<6; i++)
        pieces [i] = new Texture2D ("Application/assets/island" + i + ".png", false);

    for(int i=0; i< pattern.Length; i++)
        pattern[i] = gen.Next(0,5);      // Problem is here

2 个答案:

答案 0 :(得分:0)

pattern是一个二维数组。因此,您需要提供两个索引来访问它的值。

如果要使用随机值填充pattern,可以使用两个for循环:

for(int i = 0; i<pattern.GetLength(0); i++) 
{
     for(int j=0; j<pattern.GetLength(1); j++)
     {
          pattern[i,j] = gen.Next(0,5);
     }
}

进一步阅读

答案 1 :(得分:0)

我甚至没有看到pattern的声明。但从赋值pattern = new int[9,12];来看,它必须是一个二维数组。因此,要访问其中的元素,您需要指定两个不同的索引。

您认为new int[9,12];创建了哪种数组?