C#枚举,双前一个枚举值
这个问题在这里已经有了答案:
你需要这个的原因是flags枚举被表示为一个二进制数。 每个值为2(1,2,4,8,16等)的幂对应于二进制数中的不同索引:
2 -> 10
4 -> 100
8 -> 1000
这是至关重要的,这样您可以确定给定值实际包含哪些标志。 例如,如果你的类的枚举值是1110
它的标志值是2,4和8。
如果您使用的值不是2的幂,那么在执行按位和&
时,c#不能再合理地区分哪些枚举值由您的类标志表示。
这个问题在这里已经有了答案:
你需要这个的原因是flags枚举被表示为一个二进制数。 每个值为2(1,2,4,8,16等)的幂对应于二进制数中的不同索引:
2 -> 10
4 -> 100
8 -> 1000
这是至关重要的,这样您可以确定给定值实际包含哪些标志。 例如,如果你的类的枚举值是1110
它的标志值是2,4和8。
如果您使用的值不是2的幂,那么在执行按位和&
时,c#不能再合理地区分哪些枚举值由您的类标志表示。