Object 數據類型的變數可以參考任何類型的數據。 您儲存在 Object 變數中的值會保留在記憶體中的其他地方,而變數本身則保留數據的指標。
物件分類器函式
Visual Basic 提供可以回傳變數所參考的資訊的函式,如下表所示。
| 功能 | 如果 Object 變數參考某個物件,則返回 True。 |
|---|---|
| IsArray | 值的陣列,而不是單一值 |
| IsDate | Date 資料類型值,或可解譯為日期和時間值的字串 |
| IsDBNull | 屬於DBNull型別的物件,表示遺漏或不存在的數據 |
| IsError | 一個源自Exception的例外狀況物件 |
| IsNothing | 沒有,也就是說,目前沒有物件指派給變數 |
| IsNumeric | 數位或可解譯為數位的字串 |
| IsReference | 參考類型(例如字串、陣列、委派或類別類型) |
您可以使用這些函式來避免將無效的值提交至作業或程式。
TypeOf 運算符
您也可以使用 TypeOf 運算符 來判斷物件變數目前是否參考特定的數據類型。 如果運算元的執行時間類型是衍生自或實作指定的型別,則 TypeOf...Is 表示式會評估為 True。
下列範例會針對參考值和參考型別的物件變數使用 TypeOf 。
' The following statement puts a value type (Integer) in an Object variable.
Dim num As Object = 10
' The following statement puts a reference type (Form) in an Object variable.
Dim frm As Object = New Form()
If TypeOf num Is Long Then Debug.WriteLine("num is Long")
If TypeOf num Is Integer Then Debug.WriteLine("num is Integer")
If TypeOf num Is Short Then Debug.WriteLine("num is Short")
If TypeOf num Is Object Then Debug.WriteLine("num is Object")
If TypeOf frm Is Form Then Debug.WriteLine("frm is Form")
If TypeOf frm Is Label Then Debug.WriteLine("frm is Label")
If TypeOf frm Is Object Then Debug.WriteLine("frm is Object")
上述範例會將下列幾行寫入 [ 偵錯] 視窗:
num is Integer
num is Object
frm is Form
frm is Object
物件變數 num 會參考 型 Integer別 的數據,並 frm 參考 類別 Form的物件。
對象陣列
您可以宣告及使用變數陣列 Object 。 當您需要處理各種數據類型和對象類別時,這會很有用。 陣列中的所有項目都必須具有相同宣告的數據類型。 將這個資料類型宣告為 Object ,可讓您將物件和類別實例與數位中的其他數據類型一起儲存。