Перечисления

Перечисления - это особый размерный тип, который определяет множество элементов. Каждый элемент представляет собой именованную константу с присвоенным ей значением.

Перечислимый тип имеет соответствующий ему целочисленный тип, который называется базовым для перечислимого. Определение перечислимого типа может содержать явное указание базового типа, которым может быть один следующих типов: Byte, SByte, Short, UShort, Integer, UInteger, Long, ULong. Тип Char не может быть использован в качестве базового. Если базовый тип не указан, то по умолчанию таким типом считается Integer.

Тело перечислимого типа должно содержать минимум один элемент. Никакие два элемента не могут иметь одинаковое имя, но могут иметь одинаковое значение. Значением является присвоенное значение базового типа. Также значение константы может быть сформировано путём вычисления выражения, состоящего из элементов текущего перечисления, элементов других перечислений или констант целого типа.

Определение перечисления состоит из опционального множества атрибутов интерфейса, за которыми могут следовать опциональные модификаторы доступа Public или Friend с последующим ключевым словом Enum и именем перечисления. Далее через двоеточие может быть указан базовый тип. После этого через запятую указываются элементы перечисления и их числовые значения. Завершается описание последовательностью ключевых слов End Enum.

//Перечисление с модификатором доступа и базовым типом
Public Enum Weekday: Byte
    Monday = 
1,
    Tuesday = 
2,
    Wednesday = 
4,
    Thursday = 
8,
    Friday = 
16,
    Saturday = 
32,
    Sunday = 
64
End Enum;

//Атрибуты и выражения в элементах перечислений
Public Class ElementAccessAttribute: System.Attribute
    _Description: String;

    
Public Constructor ElementAccessAttribute(ElementDescription: String);
    
Begin
        _Description := ElementDescription;
    
End Constructor;
End Class;

Enum UserAccess
    [ElementAccess(
"Нет прав доступа")]
    None = 
0,
    [ElementAccess(
"Права на чтение")]
    Read = 
1,
    [ElementAccess(
"Права на запись")]
    Write = 
2,
    [ElementAccess(
"Права на вставку записей")]
    Insert = 
4,
    [ElementAccess(
"Права на удаление записей")]
    Delete = 
8,
    [ElementAccess(
"Все права доступа")]
    All = Read + Write + Insert + Delete
End Enum;

См. также:

Руководство по языку Fore.NET