變數和屬性都代表您可以存取的值。 不過,記憶體和實作有差異。
變數
變數會直接對應至記憶體位置。 您可以使用單一宣告語句來定義變數。 變數可以是 局部變數,定義於程式內,而且只能在該程式內使用,或者它可以是 成員變數,定義於模組、類別或結構中,但不在任何程式內。 成員變數也稱為 欄位。
性能
屬性是在模組、類別或結構上定義的數據元素。 您可以在 `Property` 和 `End Property` 語句之間定義具有程式碼區塊的屬性。 程序代碼區塊包含 Get 程式、 Set 程式或兩者。 這些程式稱為 屬性程式 或 屬性存取子。 除了擷取或儲存屬性值之外,它們也可以執行自定義動作,例如更新存取計數器。
差異
下表顯示變數和屬性之間的一些重要差異。
| 差異點 | 變數 | 房產 |
|---|---|---|
| 聲明 | 單一宣告語句 | 程序代碼區塊中的語句系列 |
| 實施 | 單一儲存位置 | 可執行程式碼(屬性操作程序) |
| 存儲 | 直接與變數的值產生關聯 | 通常內部儲存僅限於屬性所在的類別或模組內部使用。 屬性的值可能存在,或者可能不存在作為預存的元素 1 |
| 可執行的程序代碼 | 沒有 | 必須至少有一個程序 |
| 讀取和寫入存取權 | 讀取/寫入或唯讀模式 | 讀取/寫入、唯讀或唯寫 |
| 自訂動作(除了接受或傳回值之外) | 不可能 | 可以在設定或擷取屬性值時執行 |
1 與變數不同,屬性的值可能不直接對應至單一存儲項。 為了方便或安全性,記憶體可能會分割成片段,或值可能以加密形式儲存。 在這些情況下, Get 程式會組合片段或解密預存值,程式 Set 會加密新值,或將它分割成組成記憶體。 屬性值可能是暫時的,例如一天中的時間,在此情況下,每次您存取 屬性時, Get 程式都會實時計算它。