本 週 我 們 介 紹 比 較 平 實 的 功 能 , 不 過 對 VB5 來 說 也 是
不 可 欠 缺 的 ─ 列 舉 式 資 料 型 別 。
筆 者 想 直 接 舉 例 來 說 明 , 假 設 我 們 想 在 程 式 中 表 示「星期日 、 星期一 、 … 星期六」 的 「星期」 資 料 , 那 麼 常 見 的 方 法 有 兩 種 , 第 一 種 是 使 用 數 字 來 表 示 , 例 如 : 但 這 種 表 示 法 會 降 低 程 式 的 可 讀 性 , 例 如 當 我 們 看 到「Weekday = 0」的 敘 述 時 , 可 能 還 要 想 一 下 0 到 底 表 示 星期幾 。 第 二 種 方 法 則 是 使 用 字 串 來 表 示 , 例 如 : 但 這 種 表 示 法 會 降 低 程 式 的 執 行 效 率 , 例 如 :「If Weekday = "星期日 " Then」敘 述 要 比「If Weekday = 0 Then」敘 述 的 執 行 效 率 來 得 差 。 其 實 表 示 「 星期」 的 資 料 , 不 管 使 用 數 字 或 字 串 都 不 盡 理 想 , 比 較 理 想 的 方 式 是 : 資 料 內 部 採 用 數 字 來 儲 存 , 但 外 觀 上 仍 以 文 字 表 示 , 例 如 :
這 樣 子 就 可 以 兼 顧 執 行 效 率 與 程 式 的 可 讀 性 , 列 舉 式 的 資 料 型 別 就 是 因 應 這 種 需 求 而 產 生 的 資 料 型 別 , 以 星期資 料 為 例 , 將 它 們 宣 告 成 列 舉 式 資 料 型 別 的 敘 述 是 : 將 星期資 料 宣 告 成 Weektype 資 料 型 別 之 後 , 讓 我 們 來 看 看 使 用 的 方 法 及 結 果 : 從 以 上 程 式 列 印 的 結 果 來 看 , 我 們 得 知 星期資 料 在 外 觀 上 雖 然 是「星期日 、 星期一 、 … 星期六」, 但 資 料 內 部 卻 是 以「 0、 1、 … 6」 來 儲 存 的 。 註 : 以 上 程 式 中 , 我 們 使 用 了「中 文」來 表 示「星期日 、 星期一 …」, 例 如 :「 d = 星期一 」,可 能 會 有 人 以 為 是 不 是 筆 者 弄 錯 了 , 其 實 自 從 VB 4.0 版 以 後 , 程 式 中 的「變 數 、 常 數 、 副 程 式 、 及 函 數 …」就 可 以 用 中 文 來 命 名 , 所 以 以 上 程 式 中 的﹛u星期日 、 星期一 …」是 絕 對 正 確 的 。 從 以 上 的 程 式 我 們 可 以 看 出 , 被 列 舉 的 資 料 其 預 設 值 是 按 照 0、 1、 2… 的 順 序 來 排 列 的 , 但 也 允 許 我 們 做 個 別 設 定 的 , 例 如 : 就 是 將 「 星期日 」 設 定 成 7, 「 星期一 … 星期六 」 設 定 成 「 1… 6」 。 列 舉 式 資 料 型 別 在 VB5 的 應 用 列 舉 式 的 資 料 型 別 應 用 在 VB5 的 ActiveX control 開 發 中 , 可 以 讓 control 的 屬 性 具 有 「 列 舉 選 取 」 的 功 能 , 例 如 : |