无效的排名说明符
Invalid rank specifier
我正在尝试使用基于图块的地图创建地牢爬虫。但是,在创建图块数组时出现错误。 (现在,Tile
是一个 class,只有一个空的构造函数。)
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()
{
}
}
为什么会出现此错误?
在 C# 中,实例化二维数组的正确方法是使用逗号代替:
int[,] array = new [3,2];
您仍然可以创建诸如 int[][]
之类的数组,但是您需要使用 for 循环在其中创建每个单独的数组(长度可以不同),这称为锯齿状的阵列。但是,我建议使用逗号语法,因为它在 C# 中是惯用的,并且是预期的处理方式。
我正在尝试使用基于图块的地图创建地牢爬虫。但是,在创建图块数组时出现错误。 (现在,Tile
是一个 class,只有一个空的构造函数。)
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()
{
}
}
为什么会出现此错误?
在 C# 中,实例化二维数组的正确方法是使用逗号代替:
int[,] array = new [3,2];
您仍然可以创建诸如 int[][]
之类的数组,但是您需要使用 for 循环在其中创建每个单独的数组(长度可以不同),这称为锯齿状的阵列。但是,我建议使用逗号语法,因为它在 C# 中是惯用的,并且是预期的处理方式。