¿Cómo determinar el tipo de valor de enumeración representado?
Considere los siguientes dos enumeraciones:
enum MyEnum1 {
Value1 = 1,
Value2 = 2,
Value3 = 3
}
enum MyEnum2 {
Value1 = 'a',
Value2 = 'b',
Value3 = 'c'
}
Puedo recuperar el valor físico representado por estos valores de enumeración a través de una conversión explícita,((int)MyEnum1.Value2) == 2
o((char)MyEnum2.Value2) == 'b'
, pero ¿qué sucede si quiero obtener la representación char o la representación int sin saber primero el tipo al que se va a enviar?
¿Es posible obtener el valor subyacente de una enumeración sin una conversión o es al menos programáticamente posible determinar el tipo correcto del valor subyacente?