2012-04-20 4 views
5

可能性の重複:最後の項目の値が大きすぎるように見えるフラグが多すぎるenumです。最後の値が大きすぎます。どうすれば解決できますか?

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


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

私は33個の要素を含まなければなら[Flags] enumを以下しています。誰もこれを前に扱っていますか?どのようにこれを解決する/解決することができます任意のアイデア?

+1

loooong列挙.. –

答えて

12

enumのタイプをより広い範囲のものに指定することができます。

+0

あなたも 'パブリック列挙型を使用することができます列挙には負の値が存在しないので:P:uint'は4つのバイトを節約するには – albertjan