所以,我有这个好主意。我需要在平头十六进制中循环所有方向。所以,鉴于枚举
public enum HexDirectionFlat
{
UP, UP_LEFT, DOWN_LEFT, DOWN, DOWN_RIGHT, UP_RIGHT
}
那么这是一个有效的for循环吗?
for(HexDirectionFlat dir = HexDirectionFlat.UP; dir <= HexDirectionFlat.UP_RIGHT; dir++)
如果是这样,是否有任何表现原因不使用它?
答案 0 :(得分:4)
那么这是一个有效的for循环吗?
是的,绝对。
如果是这样,是否有任何性能原因不使用它?
不,这是迭代枚举值的一种非常有效的方法 - 例如,可能比调用需要分配数组的Enum.GetValues
更有效。
缺点是:
byte
的枚举为255),则循环将永远不会终止你可以使用常数来减轻前两点;第三点只与明确价值的枚举有关;最后一点非常罕见。您可以编写单元测试来检查所有这些。