<分区>
Possible Duplicate:
Should an Enum start with a 0 or a 1?
为什么我不应该在标志枚举中使用 0?我已经多次阅读这篇文章并且想 知道原因:)
<分区>
Possible Duplicate:
Should an Enum start with a 0 or a 1?
为什么我不应该在标志枚举中使用 0?我已经多次阅读这篇文章并且想 知道原因:)
最佳答案
Why should I never use 0 in a flag enum?
该问题基于不正确的假设。您应该始终在标志枚举中使用零。它应该始终设置为“无”。
除了表示“未设置任何标志”之外,您不应该将它用于任何其他用途。
Why not?
因为如果零具有“无”以外的含义,它会变得非常困惑。人们有合理的期望 ((e & E.X) == E.X)
意味着“是否设置了 X 标志?”但如果 X 为零,则此表达式将始终为真,即使逻辑上标志未“设置”。
关于c# - 为什么我不应该在标志枚举中使用 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9811047/