不理解这个实例

本文关键字:实例 不理解 | 更新日期: 2023-09-27 18:32:11

我正在尝试将闪存代码转换为 c#。我不熟悉闪光灯,所以我遇到了一些问题。我已经解决了所有问题,但这是因为我不明白是什么。

private var map:Array<Array<Tile> = new Array<Array<Tile>>();

这是一个列表列表吗?它像二维数组一样使用,但我不认为这是一个数组。

例:

    for (x in 0...Main.MAP_WIDTH) {
        map[x] = new Array<Tile>();
        for (y in 0...Main.MAP_HEIGHT) {
            // initialize a new tile
            map[x][y] = new Tile(Tile.DARK_WALL, true, true);
            // set location of tile based on array values
            map[x][y].setLoc(x, y);
            // add tile as a child so it will display
            addChild(map[x][y]);
        }
    }

不理解这个实例

这是一个列表列表吗?

是的。是的。在 c# 中,它将是

private List<List<Tile>> map = new List<List<Tile>>();
访问

数组元素的方式存在差异(至少在 c# 中)。如果你做了一个多维数组,它看起来像这样:

string[,] map2 = new string[2, 3];
map2[1, 3] = "aa";

对于列表,因为一个数组是另一个数组的"成员"(松散术语),所以每个数组都必须在自己的括号中。

map[2][4] = SomeTile();