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. 除了星期以外,还有更适合使用列举的情况吗?