访问阵列时出错

本文关键字:出错 阵列 访问 | 更新日期: 2023-09-27 18:33:22

我收到错误

[] 中的索引数错误;预期为 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

访问阵列时出错

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);
     }
}

延伸阅读

  • 多维数组(C# 编程指南)
  • Array.GetLength Method

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

您认为new int[9,12];会创建什么样的数组?