Перечисление объявляется с помощью ключевого слова enum, идентифицируется по имени и представляет собой непустой список неизменяемых именованных значений интегрального типа. Первое значение в перечислении по умолчанию инициализируется нулём. Каждое последующее значение отличается от предыдущего по крайней мере на единицу, если объявление значения не содержит явного дополнительного присвоения нового значения. Пример объявления перечисления приводится ниже.
enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
Обращение к элементу перечисления осуществляется посредством сложного выражения, состоящего из имени класса перечисления, операции доступа к элементу перечисления ‘.’, имени элемента перечисления:
int xVal = Colors.Red; //Переменная xVal инициализируется значением перечисления.
Перечисление является классом, а это означает, что в распоряжении программиста оказываются методы сравнения значений перечисления, методы преобразования значений перечисления в строковое представление, методы перевода строкового представления значения в перечисление, а также (судя по документации) средства для создания объектов-представителей класса перечисления.
Далее приводится список членов класса перечисления.
Открытые методы
CompareTo
Сравнивает этот экземпляр с заданным объектом и возвращает сведения об их относительных значениях.
Equals
Переопределен. Возвращает значение, показывающее, равен ли данный экземпляр заданному объекту.
Format
Статический. Преобразует указанное значение заданного перечисляемого типа в эквивалентное строчное представление в соответствии с заданным форматом.
GetHashCode
Переопределен. Возвращает хеш-код для этого экземпляра.
GetName
Статический. Выводит имя константы в указанном перечислении, имеющем заданное значение.
GetNames
Статический. Выводит массив имен констант в указанном перечислении.
GetType (унаследовано от Object)
Возвращает Type текущего экземпляра.
GetTypeCode
Возвращает базовый тип TypeCode для этого экземпляра.
GetUnderlyingType
Статический. Возвращает базовый тип указанного перечисления.
GetValues
Статический. Выводит массив значений констант в указанном перечислении.
IsDefined
Статический. Возвращает признак наличия константы с указанным значением в заданном перечислении.
Parse
Статический. Перегружен. Преобразует строковое представление имени или числового значения одной или нескольких перечисляемых констант в эквивалентный перечисляемый объект.
ToObject
Статический. Перегружен. Возвращает экземпляр указанного типа перечисления, равный заданному значению.
ToString
Перегружен. Переопределен. Преобразует значение этого экземпляра в эквивалентное ему строковое представление.
Защищенные конструкторы
Enum - конструктор
[Поставка ожидается.] Во как!
Защищенные методы
Finalize (унаследовано от Object)
Переопределен. Позволяет объекту Object попытаться освободить ресурсы и выполнить другие завершающие операции, перед тем как объект Object будет уничтожен в процессе сборки мусора.
В языках C# и C++ для функций финализации используется синтаксис деструктора.