我经常看到使用十六进制值的标志枚举声明。例如:
[Flags]
public enum MyEnum
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4,
Flag4 = 0x8,
Flag5 = 0x10
}
当我声明一个 enum 时,我通常这样声明它:
[Flags]
public enum MyEnum
{
None = 0,
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
Flag5 = 16
}
为什么有些人选择用十六进制而不是十进制表示值,有什么原因或理由吗?在我看来,当使用十六进制值时,意外地写 Flag5 = 0x16
而不是 Flag5 = 0x10
会更容易混淆。