编译器错误:无效的排名说明符:二维数组初始化中的预期','或']'

Vah*_*heh 26 c# multidimensional-array

我有一个要在C#中完成的类的作业.作为一个完整的C#新手,我先用Java做了这个项目,现在我正在尝试将它转换为C#.我有以下功能,导致以下编译器错误.

错误:无效的排名说明符:以下行中的预期','或']':

int[][] grid=new int[g.cols][g.rows];
Run Code Online (Sandbox Code Playgroud)

Visual Studio正在强调g.rows

public int[][] getConvergenceCounts(MandelbrotGrid g){
  int[][] grid=new int[g.cols][g.rows];

  for(int x=0;x<g.cols;x++){
     for(int y=0;y<g.rows;y++){
        double tx=x*(double)3/400-1.5;
        double ty=y*(double)3/400-1.5;
        grid[x][y]=getConvergenceCount(new Complex(ty,tx));
     }
  }

  return grid;
}
Run Code Online (Sandbox Code Playgroud)

我不知道我在这里做错了什么,在C#中阅读多维数组似乎没有帮助.

Don*_*nut 38

C#编译器认为您正在尝试声明锯齿状数组,并且这样做不正确.锯齿状数组是一个数组数组,其中主数组中包含的每个数组可以具有不同数量的元素.锯齿状数组声明如下:

int[][] jaggedArray = new int[numElements][];
Run Code Online (Sandbox Code Playgroud)

哪个会创建一个可以在其中保存" numElements"整数数组的数组.

您想声明一个多维数组,例如:

int[,] grid = new int[g.cols, g.rows];
Run Code Online (Sandbox Code Playgroud)

  • 您可以将grid.GetLength(0)用作第一维(x),将grid.GetLength(1)用作第二维(y) (5认同)