标志包含太多物品;最后一个值太大了。我该如何解决这个问题?

时间:2012-04-20 09:26:53

标签: c# enums flags

  

可能重复:
  When you use flag(Enum) you have a limit of 64. What are the alternative when you reach the limit?

我有以下[Flags] enum必须包含33个元素:

[Flags]
public enum Types
{
    None = 0,
    Alarm = 1,
    Exit = 2,
    Panic = 4,
    Fire = 8,
    Tamper = 16,
    Key = 32,
    Line = 64,
    FTC = 128,
    Unused = 256,
    tech_1 = 512,
    //... tech_2 through _7 omitted for brevity
    tech_8 = 65536,
    fire_1 = 131072,
    //... fire_2 through _11 omitted for brevity
    fire_12 = 268435456,
    Key = 536870912,
    Exit = 1073741824,
    Gas = 2147483648, // Cannot convert source type uint to target type int
}

最后一项的值似乎太大。以前有人处理过这个吗?任何想法如何解决/解决这个问题?

1 个答案:

答案 0 :(得分:12)

您可以将枚举的类型指定为具有更大范围的内容。

[Flags]
public enum Types : long