Object Data Type
保留參考物件的位址。 您可以將任何參考型別 (字串、陣列、類別或介面) 指派給 Object
變數。 Object
變數也可以參考任何實值型別的資料 (數值、Boolean
、Char
、Date
、結構或列舉)。
備註
Object
資料類型可以指向任何資料類型的資料,包括您的應用程式可辨識的任何物件執行個體。 當您在編譯時間不知道變數可能指向哪個資料類型時,請使用 Object
。
Object
的預設值為 Nothing
(Null 參考)。
資料類型
您可以將任何資料類型的變數、常數或運算式指派給 Object
變數。 若要判斷 Object
變數目前參考的資料類型,您可以使用 System.Type 類別的 GetTypeCode 方法。 說明如下例。
Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())
Object
資料類型為參考型別。 不過,當變數參考實值型別的資料時,Visual Basic 會將 Object
變數視為實值型別。
儲存體
無論其參考何種資料類型,Object
變數都不包含資料值本身,而是資料值的指標。 其於電腦記憶體中一律使用四個位元組,但這不包含代表變數值的資料儲存空間。 由於使用指標尋找資料的程式碼,包含實值型別的 Object
變數會比明確型別變數的存取速度稍微慢一些。
程式設計提示
Interop 考量。 如果您要使用的元件不是針對 .NET Framework 所撰寫 (例如 Automation 或 COM 物件),請記住,其他環境中的指標類型與 Visual Basic
Object
類型並不相融。效能。 使用
Object
型別宣告的變數具有靈活彈性,足以包含對任何物件的參考。 不過,當您在此類變數上叫用方法或屬性時,則一律會導致晚期繫結 (在執行階段)。 若要強制執行早期繫結 (在編譯時間) 與更佳效能,請使用特定類別名稱宣告變數,或將其轉換為特定資料類型。當您宣告物件變數時,請嘗試使用特定類別類型,例如 OperatingSystem 而非一般化
Object
類型。 您也應該利用可用的最特定類別,例如 TextBox 而非 Control,以便您存取其屬性和方法。 您通常可以使用 [物件瀏覽器] 中的 [類別] 清單,尋找可用的類別名稱。擴展。 所有資料類型和所有參考型別都會擴展為
Object
資料類型。 這表示,您可以將任何類型轉換成Object
,而不會發生 System.OverflowException 錯誤。不過,如果您在實值型別和
Object
之間進行轉換,Visual Basic 會執行稱為 boxing 和 unboxing 的作業,導致執行速度變慢。型別字元。
Object
沒有常值型別字元或識別項型別字元。Framework 型別。 在 .NET Framework 中對應的類型為 System.Object 型別。
範例
下列範例說明指向物件執行個體的 Object
變數。
Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)