如何:声明枚举

更新:2007 年 11 月

在类或模块的声明部分中用 Enum 语句创建枚举。不能在方法中声明枚举。若要指定适当的访问级别,请使用 Private、Protected、Friend 或 Public。

每个 Enum 类型都有一个名称、一个基础类型和一组字段,它们各表示一个常数。名称必须是一个有效的 Visual Basic 2005 限定符。基础类型必须是整数类型(Byte、Short、Long 或 Integer)之一。Integer 为默认类型。枚举始终是强类型的,不能与整数类型互换。

枚举不能具有浮点值。如果使用 Option Strict On 给枚举赋一个浮点值,则将产生编译器错误。如果 Option Strict 为 Off,则该值将自动转换为 Enum 类型。

有关名称以及如何使用 Imports 语句以取消名称限定的信息,请参见枚举和名称限定

声明枚举

  1. 编写一个包括代码访问级别、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
    
  2. 定义枚举中的常数。默认情况下,枚举中的第一个常数初始化为 0,后面的常数初始化为比前面的常数多 1 的值。例如,下面的枚举 Days 包含名为 Sunday 而值为 0 的常数、名为 Monday 而值为 1 的常数和名为 Tuesday 而值为 2 的常数等。

    Public Enum Days
      Sunday
      Monday
      Tuesday
      Wednesday
      Thursday
      Friday
      Saturday
    End Enum
    
  3. 可使用赋值语句将值显式赋予枚举中的常数。可赋予任何整数值,包括负数。例如,可能希望值小于零的常数表示错误情况。在下面的枚举中,将值 –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
    

请参见

任务

如何:引用枚举成员

如何:在 Visual Basic 中循环访问枚举

如何:确定与枚举值关联的字符串

概念

枚举和名称限定

何时使用枚举

内部常数和枚举

常数和数据类型

其他资源

Visual Basic 中的常数