Как определить представленный тип значения enum?
Рассмотрим следующие два перечисления:
enum MyEnum1 {
Value1 = 1,
Value2 = 2,
Value3 = 3
}
enum MyEnum2 {
Value1 = 'a',
Value2 = 'b',
Value3 = 'c'
}
Я могу получить физическое значение, представленное этими значениями перечисления, посредством явного приведения,((int)MyEnum1.Value2) == 2
или же((char)MyEnum2.Value2) == 'b'
, но что, если я хочу получить представление типа char или int, не зная заранее, к какому типу приводиться?
Можно ли получить базовое значение перечисления без приведения или, по крайней мере, программно возможно определить правильный тип базового значения?