共用方式為


做為通用資料型別的物件 (Visual Basic)

Object 資料型別為 .NET Framework 和 Visual Basic 中的根型別。 這表示,所有其他資料型別和物件型別都是直接或最終從其衍生而來的。 也就是說,無論是基本或複合的任何其他資料型別都可以轉換為 Object。

鬆散型別

您可使用 Object 當成通用資料型別。 這稱為「鬆散型別」(Loose Typing)。 下面這個範例可說明這種彈性。

Dim v As Object
v = "17"
' v contains the 2-character String value "17".
v = v - 15
' v now contains the Integer value 2.
v = "H" & v
' v now contains the 2-character String value "H2".

儘管您可以在 Object 變數上執行這類運算,而不需太顧慮其所包含資料的種類,但請小心避免下列陷阱:

  • 如果在 Object 上執行算術運算或函式,其必須含有數字資料,否則會發生執行階段錯誤。

  • 當您串連字串時,請使用 & 運算子,不要使用 + 運算子。 當 + 運算子加入其運算元並串連時,會由複雜的規則來管理。 在某些情況下,+ 運算子也必須執行型別檢查和轉換,這會降低效能。

變更物件變數的資料型別

雖然 Object 變數可以接受任何型別的資料,但卻無法將變數本身變更為不同的資料型別。 但您可以重新設定 Object 變數的維度使其成為 Object 變數的陣列。 以下範例會說明有效及無效的 ReDim 陳述式 (Visual Basic) 用法。

' The following statement declares a single Object.
Dim someObj As Object
' The following reallocation is valid only for Object.
ReDim someObj(8)
' The following statement attempts an INVALID change of data type.
ReDim someObj(8) As Double

第一個 ReDim 陳述式會將 someObj 變更為 Object 型別的陣列。 這只對 Object 資料型別有效。 第二個 ReDim 陳述式無效,因為它包含不同的資料型別。 使用個別陣列可以達成所要的效果。 下列範例將說明這點。

' First allocate a separate array.
Dim someArray(8) As Double
' Then assign the new array to the Object variable.
someObj = someArray

使用物件取代結構

由於 Object 資料型別可以儲存許多不同型別的資料,因此在許多使用結構的情況下,您也可以使用 Object 陣列。 Object 陣列比結構稍具彈性,因為您可以隨時變更儲存在每個元素中資料的型別,而且可以將陣列設為動態以便視需要變更其大小。 不過,Object 陣列會比對等用法結構使用更多記憶體,所以效能較差。

請參閱

參考

資料型別摘要 (Visual Basic)

型別轉換函式 (Visual Basic)

概念

Visual Basic 中的不具型別程式設計

隱含和明確宣告 (Visual Basic)

Visual Basic 中的型別檢查

有效率地使用資料型別 (Visual Basic)

物件變數宣告 (Visual Basic)

物件變數指派 (Visual Basic)

物件變數值 (Visual Basic)

其他資源

Visual Basic 中的型別轉換