带有Flags属性的C#枚举

SKG*_*SKG 10 c# enums flags attributes

我想知道带有Flag属性的Enums是否主要用于Bitwise操作,如果枚举值未定义,编译器为什么不自动生成值.

例如.

[Flags]
public enum MyColor
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}

如果未分配值1,2,4,8是自动生成的,那将会很有帮助.想知道你对此的看法.

Dan*_*röm 13

有点容易:

[Flags]
public enum MyColor
{
    Yellow = 1<<0,
    Green = 1<<1,
    Red = 1<<2,
    Blue = 1<<3
}
Run Code Online (Sandbox Code Playgroud)


Bli*_*ndy 3

他们可能可以,但是对于这种规模的编译器,他们必须考虑实现某些内容所需的时间和资源与潜在的好处,尤其是像这样的语法糖。它只是语法糖,因为你可以手动编写它。