2012-04-20 12 views
5

Duplicar posible:
When you use flag(Enum) you have a limit of 64. What are the alternative when you reach the limit?Enum de banderas con demasiados elementos; el último valor es demasiado grande. ¿Cómo puedo resolver esto?

tengo el siguiente [Flags] enum que tiene que contener 33 elementos:

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

Aparece el valor para el último elemento a ser demasiado grande . ¿Alguien a lidiado con esto antes? ¿Alguna idea de cómo puede resolverse/resolverse?

+1

una enumeración muuuucho .. –

Respuesta

12

Puede especificar el tipo de la enumeración para que sea algo con un rango mayor.

+0

Dado que no existen valores negativos en la enumeración que podría también utilizar 'Tipos de enumeración públicos: uint' ahorra 4 bytes: P – albertjan

Cuestiones relacionadas