初學 Visual Basic (VB6/VBA/VB.NET) 時,第一個遇到的關鍵字往往就是 Dim。它源自英文 Dimension (維度/尺寸),核心作用是宣告變數並配置記憶體空間。掌握 Dim 的語法細節,是寫出健壯代碼的基礎。
Dim 變數名稱 [As 資料類型]
Integer (整數)、Long (長整數)、Single/Double (單/雙精度浮點)、String (字串)、Boolean (布林)、Date (日期)、Object (物件)、Variant (通用/未指定,效能最差)。當程式執行到 `Dim` 陳述式時,運行時環境自動完成:
Dim intX As Integer, intY As Integer, intZ As Integer
陷阱警示: `Dim A, B As Integer` → 僅 B 是 Integer,A 會被視為 Variant (VB6/VBA) 或報錯 (VB.NET Option Strict On)。每個變數必須獨立跟 As 類型。
| 宣告位置 | 關鍵字 | 作用域 (生命週期/可見範圍) |
|---|---|---|
| 模組頂部 (所有程序外) | Public / Dim | 專案全域 (Public) / 模組級 (Dim/Private) |
| 類別模組頂部 | Public / Private / Dim | 類別實例公共 / 私有 / 私有 |
| 程序內部 (Sub/Function 內) | Dim / Static | 程序級區域 (Dim) / 靜態保值 (Static) |
原則: 變數作用域越小越好 (區域 > 模組 > 全域),減少副作用與命名衝突。
在模組最頂端加入 `Option Explicit`。未宣告直接使用變數將導致編譯錯誤,有效防止拼字錯誤產生的隱性 Bug。
' VB.NET 可省略 As 類型,編譯器依賦值推論
Dim message = "Hello" ' 推論為 String
Dim count = 10 ' 推論為 Integer
Dim price = 9.99 ' 推論為 Double
' 但複雜類型、介面、泛型仍建議顯式指定
Dim users As New List(Of String)()
Dim 不只是「定義變數」,它是記憶體管理契約。專業開發者習慣:盡早宣告、就近宣告、顯式指定類型、最小化作用域、啟用 Option Explicit。這習慣能讓你從 VB 遷移到 C#、Java、TypeScript 時無縫銜接強型別思維。