共用方式為


實值型別和參考型別

Visual Basic 中有兩種類型:參考型別和實值型別。 參考型別的變數會儲存其數據的參考(物件),而實值型別的變數則直接包含其數據。 使用參考類型時,這兩種變數可以參考相同的物件,因此對其中一個變數進行的作業可能會影響另一個變數所參考的物件。 使用實值型別時,每個變數都有自己的數據複本,而且一個變數上的作業無法影響另一個變數(但參數 上的 ByRef 修飾詞除外)。

實值型別

如果資料類型在自己的記憶體配置中保存資料,那麼該資料類型是實值類型。 實值類型包括下列各項:

  • 所有數值數據類型

  • BooleanCharDate

  • 所有結構,即使其成員是參考型別,也一樣

  • 列舉,因為它們的基礎類型一律為 SByteShortIntegerLongByteUShortUIntegerULong

每個結構都是實值型別,即使它包含參考型別成員也一樣。 因此,像CharInteger這樣的實值型別是由 .NET Framework 結構所實作。

您可以使用保留關鍵字來宣告實值型別,例如 Decimal。 您也可以使用 New 關鍵詞來初始化實值型別。 如果類型具有接受參數的建構函式,這特別有用。 其中一個範例是建 Decimal(Int32, Int32, Int32, Boolean, Byte) 構函式,它會從提供的元件建置新的 Decimal 值。

參考型別

參考類型會儲存其數據的參考。 參考型別包括下列類型:

  • String

  • 即使其元素是實值型別,所有陣列都一樣

  • 類別類型,例如 Form

  • 代表們

類別是 參考型別。 請注意,即使陣列的成員是實值型別,每個數位都是參考型別。

由於每個參考型別都代表基礎 .NET Framework 類別,因此您必須在初始化它時使用 New Operator 關鍵詞。 下列語句會初始化陣列。

Dim totals() As Single = New Single(8) {}  

不是類型的元素

下列程式設計元素不符合類型,因為您無法將其中任何專案指定為宣告項目的數據類型:

  • 命名空間

  • 模組

  • 事件

  • 屬性和程序

  • 變數、常數和欄位

使用物件數據類型

您可以將引用類型或實值型別指派給數據類型的 Object 變數。 Object變數一律會保存數據的參考,絕不會保存數據本身。 不過,如果您將實值類型指派給 Object 變數,它的行為就如同它保存自己的數據一樣。 如需詳細資訊,請參閱 對象數據類型

您可以藉由將變數傳遞至 Object 命名空間類別IsReference中的 Information 方法,找出Microsoft.VisualBasic變數是做為參考型別或實值型別。 Information.IsReference True如果變數的內容代表參考型別,Object則傳回 。

另請參閱