Метод GetUnderlyingType
Статический GetUnderlyingType принимает
typeof перечисления и возвращает
Type базового целого. Если база не
указана, это
Int32
- свойство Name даёт строку
"Int32". Явно можно задать
enum : byte и другие целые типы.
Синтаксис
Type baseType = Enum.GetUnderlyingType(typeof(Mark));
string name = baseType.Name;
Пример
Давайте узнаем базовый тип перечисления по умолчанию:
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
Type baseType = Enum.GetUnderlyingType(typeof(Mark));
Console.WriteLine(baseType.Name);
}
}
Результат выполнения кода:
"Int32"
Пример
Давайте проверим перечисление с базой
byte:
using System;
enum Code : byte { A = 1, B = 2 }
class Program
{
static void Main()
{
Type baseType = Enum.GetUnderlyingType(typeof(Code));
Console.WriteLine(baseType.Name);
}
}
Результат выполнения кода:
"Byte"
Пример
Давайте сравним базовый тип с typeof(int):
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
Type baseType = Enum.GetUnderlyingType(typeof(Mark));
bool res = baseType == typeof(int);
Console.WriteLine(res);
}
}
Результат выполнения кода:
True