Visual Basic 中屬性和變數的差異
變數和屬性都代表您可以存取的值。 不過,儲存體和實作有所差異。
變數
「變數」直接對應記憶體位置。 您可以使用單一宣告陳述式來定義變數。 變數可以是「區域變數」,定義在程序內且只能在程序內使用;或者是「成員變數」,定義在模組、類別或結構內,但不在任何程序內。 成員變數也稱為「欄位」。
屬性
「屬性」是在模組、類別或結構上定義的資料元素。 您可在 Property
與 End Property
陳述式之間以程式碼區塊定義屬性。 程式碼區塊包含 Get
程序、Set
程序或兩者。 這些程序稱為「屬性程序」或「屬性存取子」。 除了擷取或儲存屬性的值以外,它們還能執行自訂動作,例如更新存取計數。
差異
下表顯示變數和屬性之間的一些重要差異。
差異點 | 變數 | 屬性 |
---|---|---|
宣告 | 單一宣告陳述式 | 程式碼區塊中的陳述式系列 |
實作 | 單一儲存體位置 | 可執行檔程式碼 (屬性程序) |
儲存體 | 直接與變數的值相關聯 | 通常有內部儲存體,但無法在屬性所包含的類別或模組外部使用 屬性值可能或可能不存在為預存元素 1 |
可執行檔程式碼 | 無 | 必須至少有一個程序 |
讀取和寫入存取權 | 讀取/寫入或唯讀 | 讀取/寫入、唯讀或唯寫 |
自訂動作 (除了接受或傳回值) | 不可行 | 可以在設定或擷取屬性值時執行 |
1 屬性不像是變數,其值可能不會直接對應到單一儲存體項目。 儲存體可能會為了方便或安全性而分割成片段,或值可能以加密格式儲存。 在這些情況下,Get
程序會組合片段或解密預存的值,而 Set
程序會加密新的值或將其分割到組成儲存體。 屬性值可能是暫時的,例如一天中的時間,在此情況下,Get
程式會在每次存取屬性時即時計算它。