Avatar ·

C#中枚举的[Flags]属性是什么意思?

大家好!我正在学习C#,遇到了在enum声明前的[Flags]属性。我读了几篇文章,但还是不太明白它的用途。 下面是我找到的一个例子: ```csharp [Flags] public enum Days { None = 0, Monday = 1, Tuesday = 2, Wednesday = 4, Thursday = 8, Friday = 16, Saturday = 32, Sunday = 64 } ``` 我理解这些值被设置为2的幂(1, 2, 4, 8...),但我不明白: 1. [Flags]属性到底做了什么?没有它,代码也能编译。 2. 如何正确组合这些值?我试过写`Days weekend = Days.Saturday | Days.Sunday;`,但不确定是否正确。 3. 之后如何检查某个特定日是否包含在这样的组合中?例如,变量weekend中是否包含Saturday? 4. 是否必须将值设置为2的幂?可以简单地设为0, 1, 2, 3, 4吗? 请用简单的例子解释一下。提前谢谢! <<>>

属性做什