我正在尝试使用基于图块的地图创建一个地牢爬虫。但是,在创建切片阵列时出现错误。 (现在,Tile
是一个只有空构造函数的类。)
class Map
{
Tile[][] Tiles;
static const int DefaultWidth = 640, DefaultHeight = 480;
Random rnd;
public Map(int? Width, int? Height, int? seed)
{
Tiles = new Tile[((Width == null) ? DefaultWidth : (int)Width)]
//This line gives the error "invalid rank specifier: expected ',' or ']'" after the first bracket
[((Height == null) ? DefaultHeight : (int)Height)];
Generate();
}
void Generate()
{
}
}
为什么我收到此错误?
答案 0 :(得分:0)
在C#中,实例化2D数组的正确方法是使用逗号代替:
int[,] array = new [3,2];
您仍然可以创建int[][]
之类的数组,但是您需要使用for循环来创建其中的每个单独数组(可以是不同长度),这称为锯齿状阵列。但是,我建议使用逗号语法,因为它在C#中是惯用的,并且是预期的处理方式。