2

我目前正在将我的 java 游戏引擎翻译成 c#。这是我的数组映射数据

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

它显示了这个错误。

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

谢谢

4

3 回答 3

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];
}
于 2013-01-13T10:27:01.200 回答
2

您正在尝试定义一个multidimensional array. 这是 C# 中的方法;

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

Compiler Error CS0178

数组初始化格式不正确。指定数组维度时,您可以指定以下内容:

  • 括号中的数字
  • 空括号
  • 括号中的逗号
于 2013-01-13T10:28:59.677 回答
2

您不能在编译时初始化锯齿状数组的子行。

你必须这样做:

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];
于 2013-01-13T10:29:04.887 回答