如何:宣告列舉 (Visual Basic)

建立列舉時,您會在類別或模組的宣告區段中使用 Enum 陳述式。 您無法在方法內宣告列舉。 若要指定適當的存取層級,請使用 PrivateProtectedFriendPublic

Enum 型別具有名稱、基礎類型,以及一組欄位,每個欄位都代表常數。 名稱必須是有效的 Visual Basic .NET 限定詞。 基礎型別必須是下列其中一個整數型別:ByteShortLongIntegerInteger 是預設值。 列舉一律為強型別,且無法與整數型別互換。

列舉不能有浮點值。 如果列舉指派了具有 Option Strict On 的浮點值,則編譯器會產生錯誤。 如果 Option StrictOff,則值會自動轉換成 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,而後續常數會初始化為前一個常數加一的值。 例如,下列列舉 (Days) 包含名為 Sunday 且值為 0 的常數,名為 Monday 且值為 1 的常數、名為 Tuesday 且值為 2 的常數等等。

    Public Enum Days
        Sunday
        Monday
        Tuesday
        Wednesday
        Thursday
        Friday
        Saturday
    End Enum
    
  3. 您可以使用指派陳述式,明確地將值指派給列舉中的常數。 您可以指派任何整數值,包括負數。 例如,您可以使用值小於零的常數來代表錯誤狀況。 在下列列舉中,常數 Invalid 的值會明確指派為 –1,而常數 Sunday 的值會指派為 0。 因為這是列舉中的第一個常數,因此 Saturday 也會初始化為值 0Monday 的值為 1 (Sunday 的值不止一個):Tuesday 的值是 2,依此類推。

    Public Enum WorkDays
        Saturday
        Sunday = 0
        Monday
        Tuesday
        Wednesday
        Thursday
        Friday
        Invalid = -1
    End Enum
    

若要將列舉宣告為明確型別

  • 請使用 As 子句指定列舉的型別,如下列範例所示。

    Public Enum MyEnum As Byte
        Zero
        One
        Two
    End Enum
    

另請參閱