跳转到内容

BOO入門/列舉

维基教科书,自由的教学读本

BOO入門 > 列舉 (上一章:命名空間 下一章:例外)


定義 定義 列舉:名稱對應整數值的集合。

宣告列舉

[编辑]

列舉很有用,常被作為類別裡的欄位和屬性。

import System

// 宣告列舉
enum Day:
    Sunday
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday

class Action:
    [Property(Day)]
    _day as Day

// 把列舉裡所有元素列出
for s in Enum.GetNames(Day):
    print s

列舉能避免使用 "magic number","magic number" 會使得程式難以閱讀。

定義 定義 Magic Number:任何不在 -1、0、1、2 範圍內的數字。

技術上來說,列舉會自動分派一個整數值給每個列舉值,所以不需要特別指派。

// 宣告列舉
enum Test:
    Alpha
    Bravo
    Charlie

因此上面的例子就等同於下面的例子。

// 宣告列舉
enum Test:
    Alpha = 0
    Bravo = 1
    Charlie = 2
建議 建議 除非有特別情況,否則不必要指派整數值。

練習

[编辑]
  1. 除了星期以外,還有更適合使用列舉的情況嗎?