Enum to long
Jeg har en enum value gemt i et object. Jeg ved ikke om underlaeggende data type er Int16, Int32 eller Int64. Jeg skal have konverteret denne vaerdi til en Int64.private enum T2 : long
{
G = 1,
H = 2
}
private enum T : int
{
G = 1,
H = 2
}
object o2 = T2.G;
long i2 = (long)o2; // ok
object o = T.G;
long i = (long)o; // fejler her
Jeg er interesseret i at caste til long, eftersom alle enum'erne kan castes dertil. Hvad kan jeg goere her uden at goere foelgende:
// UNDONE The following seems to be bad programming. But how to?
switch (Type.GetTypeCode(typeof(T)))
{
case TypeCode.Int32:
// Cast to Int32 and then Int64 and do job
break;
case TypeCode.Int64:
// Cast to Int64 and do job
break;
}
