如何:声明枚举
更新:2007 年 11 月
在类或模块的声明部分中用 Enum 语句创建枚举。不能在方法中声明枚举。若要指定适当的访问级别,请使用 Private、Protected、Friend 或 Public。
每个 Enum 类型都有一个名称、一个基础类型和一组字段,它们各表示一个常数。名称必须是一个有效的 Visual Basic 2005 限定符。基础类型必须是整数类型(Byte、Short、Long 或 Integer)之一。Integer 为默认类型。枚举始终是强类型的,不能与整数类型互换。
枚举不能具有浮点值。如果使用 Option Strict On 给枚举赋一个浮点值,则将产生编译器错误。如果 Option Strict 为 Off,则该值将自动转换为 Enum 类型。
有关名称以及如何使用 Imports 语句以取消名称限定的信息,请参见枚举和名称限定。
声明枚举
编写一个包括代码访问级别、Enum 关键字和有效名称的声明,如下例所示,其中每个示例声明一个不同的 Enum。
Private Enum SampleEnum SampleMember End Enum Public Enum SampleEnum2 SampleMember End Enum Protected Enum SampleEnum3 SampleMember End Enum Friend Enum SampleEnum4 SampleMember End Enum Protected Friend Enum SampleEnum5 SampleMember End Enum
定义枚举中的常数。默认情况下,枚举中的第一个常数初始化为 0,后面的常数初始化为比前面的常数多 1 的值。例如,下面的枚举 Days 包含名为 Sunday 而值为 0 的常数、名为 Monday 而值为 1 的常数和名为 Tuesday 而值为 2 的常数等。
Public Enum Days Sunday Monday Tuesday Wednesday Thursday Friday Saturday End Enum
可使用赋值语句将值显式赋予枚举中的常数。可赋予任何整数值,包括负数。例如,可能希望值小于零的常数表示错误情况。在下面的枚举中,将值 –1 显式赋予了常数 Invalid,而将值 0 显式赋予了常数 Sunday。因为 Saturday 是枚举中的第一个常数,因此它还被初始化为 0 值。Monday 的值为 1(比 Sunday 的值多 1);Tuesday 的值为 2,依此类推。
Public Enum WorkDays Saturday Sunday = 0 Monday Tuesday Wednesday Thursday Friday Invalid = -1 End Enum
此代码示例也可用作 IntelliSense 代码段。在代码段选择器中,此代码示例位于“Visual Basic 语言”中。有关更多信息,请参见如何:在代码中插入代码段 (Visual Basic)。
显式声明枚举
使用以下语法编写声明。
Public Enum MyEnum As Byte Zero One Two End Enum