-2

尝试制作具有 10 列和 10 行的 2D 锯齿状数组。当我尝试初始化第一列时,它出现了多个错误,我不确定我做错了什么。

class Program
{
    int[][] board = new int[10][];
    board[0] = new int[5];
    ...
}
4

2 回答 2

3

您必须将任何不是声明的代码放入方法中

class Program
{
    static int[][] board = new int[10][];

    static void Main()
    {
        board[0] = new int[10];
        ...
    }
}

board是该类的一个字段。您还可以在方法中将其设为局部变量:

class Program
{
    static void Main()
    {
        int[][] board = new int[10][];
        board[0] = new int[10];
        ...
    }
}

类字段和局部变量之间的区别在于,如果该字段是公共的并且对于静态字段“永远”存在并且只要由此类生成的对象作为实例字段存在,则可以从外部访问该字段,而局部变量可以只能在方法内访问,并且通常只在方法调用持续时才存在(不讨论迭代器方法等特殊情况)。

锯齿状数组在两种情况下很有用

  1. 你有一个不是矩形的结构。
  2. 您希望能够在不使用循环的情况下为其分配整行。

否则我会使用一个可以立即初始化的二维数组

int[,] board = new int[10, 10];
于 2018-10-03T16:07:29.543 回答
1

如果您希望您的数组有 10 行和 10 列,您不应该使用锯齿状数组。采用:

int[,] board = new int[10, 10];

反而

于 2018-10-03T16:16:31.230 回答