2013-01-13 98 views
1

我正在将我的java游戏引擎翻译成c#。这是我的数组地图数据无效排名标识

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

它显示此错误。

无效秩指示符:预期 '' 或 ']'(CS0178) - C:\用户\ sriharshachilakapati ... NE \ Map.cs:74,39

由于

回答

1

多维数组是这样写的:

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]; 
} 
+0

由于它的工作。我认为这是c#和java之间的主要语法差异 –

1

你试图定义一个multidimensional array。这是在C#中的方式;

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

Compiler Error CS0178

数组初始化明显缺乏形成的。当指定数组 尺寸,你可以指定以下内容:

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

不能初始化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];