我正在从Java切换到C#,我想知道是否可行?我想做的是创建一个Enum {north, south, east, west}
类型的二维数组。这样,我可以调用map[1,2].north
来查找地图上的该单元格是否具有北墙。
很抱歉,我的原始代码目前无法访问我的计算机,所以我有点抽象。
最佳答案
对于枚举:
enum Dirs { North, South, East, West }
只需将数组声明为:
Dirs[,] dirs = new Dirs[10, 10];
如果您需要每个单元都具有多个墙,请使用
[Flags]
属性标记枚举,并将值设为2的幂:[Flags]
enum Dirs { North = 1 << 0, South = 1 << 1, East = 1 << 2, West = 1 << 3 }
因此,您可以进行设置,例如:
dirs[1, 2] = Dirs.North | Dirs.East;
正如@ Scott Chamberlain在他的评论中提到的-要检查方向,您可以执行以下操作:
bool hasNorthWall = dirs[1, 2].HasFlag(Dirs.North);
关于c# - 如何在C#中声明Enum的2D数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45743255/