作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 Java 切换到 C#,我想知道这是否可行?我想要做的是创建一个 Enum {north, south, east, west}
类型的二维数组。这样我就可以调用 map[1,2].north
来查明 map 上的那个单元格是否有北墙。
对于粗略的代码,我很抱歉,我目前无法访问我的计算机,所以我有点抽象。
最佳答案
对于枚举:
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# 中声明枚举的二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45743255/
我是一名优秀的程序员,十分优秀!