Перечисляемые типы
Перечисляемые типы обычно используются для определения набора именованных целочисленных констант. При определении перечисляемого типа используется пара ключевых слов Enum-End Enum вместе с модификатором доступа. Перечисляемый тип может содержать только целочисленные типы вроде Integer или Long (тип Char недопустим). Например, в следующем фрагменте определяется открытый перечисляемый тип с именем BonusStructure:
Public Enum BonusStructure None = 0 FirstLevel = 1 SecondLevel = 2 End Enum
После этого в любом месте программы можно объявить переменную типа BonusStructure:
Dim bonusLevel As BonusStructure
При работе с перечисляемыми типами, как и с другими структурными типами, ключевое слово New не используется.
Примечание
Если в перечисляемом типе указаны только имена без числовых значений, .NET начинает отсчет с 0 и увеличивает значение на 1 для каждой новой константы. Если задано только первое число, то каждое следующее значение вычисляется увеличением предыдущего на 1.
Определив в проекте перечисляемый тип, вы можете использовать конструкции вида:
Bonus =Tom.Sales * bonusLevel.SecondLevel
Поскольку перечисляемые типы неявно интерпретируются как общие, в ссылках на них можно указывать имя перечисляемого типа вместо имени переменной:
Public Function Calcu1ateBonus(ByVal theSales As Decimal) As Decimal Return theSales * BonusStructure.SecondLevel End Function
Одним из традиционных недостатков перечисляемых типов было отсутствие удобных средств для получения имени по значению, что затрудняло отладку программ. В классе Enum, базовом для всех перечисляемых типов, определены очень полезные методы для получения подобной информации. Например, следующая команда возвращает строку FirstLevel:
BonusStructure.GetName(bonusLevel.GetType.l)
Данный фрагмент выводит все имена, входящие в перечисляемый тип:
Dim enumNames As String().s As String enumNames = BonusStructure.GetNames(bonusLevel.GetType) For Eachs In enumNames System.Console.WriteLine(s) Next