2010-01-14 15 views
13

¿Es posible obtener una enumeración para mantener los valores de 64 bits? Escribí el siguiente y obtuve este mensaje de error de compilación.64bit Enums? C#

enum EnumTest { a = 0x100000000 }; 

error CS0266: Cannot implicitly convert type 'long' to 'int'. An explicit conversion exists (are you missing a cast?) 

Respuesta

34

Sí, necesita "derivarlo" de largo.

public enum MyEnum : long 
{ 
} 
+3

Gracias !! Para cualquiera que se tropiece con esto: si usa banderas, necesitará usar 1l << 40 en vez de 1 << 40 si usa esa notación. –