试图制作一个二维锯齿状数组,该数组具有10列和10行。当我尝试初始化第一列时,它会出现多个错误,并且我不确定自己在做什么错。
class Program
{
int[][] board = new int[10][];
board[0] = new int[5];
...
}
答案 0 :(得分: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];
...
}
}
difference between a class field and a local variable是,如果该字段是公共字段并且对于静态字段“永久”存在,并且可以使用此类的对象作为实例字段使用,则可以从外部访问该字段,而可以使用局部变量仅在方法内访问,并且通常仅在方法调用持续的时间内存在(而不是在讨论诸如迭代器方法之类的特殊情况)。
锯齿状阵列在两种情况下很有用
否则,我将使用可以立即初始化的二维数组
int[,] board = new int[10, 10];
答案 1 :(得分:1)
如果希望数组具有10行和10列,则不应该使用锯齿状的数组。使用:
int[,] board = new int[10, 10];
代替