排名标识符无效

时间:2013-01-13 10:25:17

标签: c# syntax multidimensional-array

我正在将我的java游戏引擎翻译成c#。这是我的数组mapdata

char[][] mapdata = new char[MAP_WIDTH][MAP_HEIGHT];
                                       ``````````

显示此错误。

  
    

无效的排名说明符:预期','或']'(CS0178) - C:\ Users \ sriharshachilakapati ... ne \ Map.cs:74,39

  

由于

3 个答案:

答案 0 :(得分:2)

多维数组以这种方式编写:

char[,] mapdata = new char[width, height];

char[][]是数组中的数组,使用这种方式:

char[][] mapdata = new char[width][];
for (int i = 0; i < mapdata.Length; i++)
{
    mapdata[i] = new char[height];
}

答案 1 :(得分:2)

您正尝试定义 multidimensional array 。以下是C#中的内容;

char[,] mapdata = new char[MAP_WIDTH, MAP_HEIGHT];

来自Compiler Error CS0178

  

阵列初始化不正确。指定数组时   尺寸,您可以指定以下内容:

     
      
  • 括号中的数字
  •   
  • 空括号
  •   
  • 用括号括起来的逗号
  •   

答案 2 :(得分:2)

您无法在编译时初始化锯齿状数组的subranks。

你必须这样做:

char[][] mapdata = new char[MAP_WIDTH][];

for (int = 0; i < mapdata.Length; ++i)
    mapdata[i]= new char[MAP_HEIGHT];

或者您可以改为使用多维数组:

char[,] mapdata = new char[MAP_WIDTH, MAP_HEIGHT];