Всі перелічення в С# є нащадками базового класу System.Enum, який забезпечує їх деякими корисними методами.
Статичний метод GetName дозволяє отримати символічне ім'я константи по її номеру, наприклад:
Console.WriteLine( Enum.GetName(typeof( Flags ),8)); // b4
Console.WriteLine(Enum.GetName(typeof(Боец.Воинское_Звание ),1)); //Сержант
Статичні методи GetNames і GetValues формують, відповідно, масиви імен і значень констант, складових перелічення, наприклад:
Array names = Enum.GetNames(typeof(Flags));
Console.WriteLine("Кількість елементів в переліченні: " + names.Length );
foreach (string elem in names) Console.Write(" " + elem);
Array values = Enum.GetValues(typeof(Flags));
foreach (Flags elem in values ) Console.Write(" " + (byte) elem);
Статичний метод IsDefined повертає значення true, якщо константа із заданим символічним ім'ям описана у вказаному переліченні, і false в іншому випадку, наприклад:
if (Enum.IsDefined(typeof(Flags), "b5"))
Console.WriteLine("Константа з ім'ям b5 існує " );
else Console.WriteLine("Константа з ім'ям b5 не існує " );
Статичний метод GetUnderlyingType повертає ім'я базового типу, на якому побудовано перелічення. Наприклад, для перелічення Flags буде отримано System.Byte:
Console.WriteLine(Enum.GetUnderlyingType(typeof(Flags) ) );