5

重複の可能性:
flag(Enum) を使用すると、64 の制限があります。制限に達した場合の代替手段は何ですか?

私は[Flags] enum33個の要素を含まなければならない次のものを持っています:

[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
}

最後の項目の値が大きすぎるようです。誰もこれを以前に扱ったことがありますか?これを解決/回避する方法はありますか?

4

1 に答える 1

13

列挙型の型をより大きな範囲のものに指定できます。

[Flags]
public enum Types : long
于 2012-04-20T09:27:52.470 に答える