物件變數值 (Visual Basic)
Object 資料型別的變數可以參考任何型別的資料。 您儲存在 Object 變數中的值會保留在記憶體的其他地方,而該變數本身會保留該資料的指標。
物件 Classifier 函式
Visual Basic 會提供可以傳回 Object 變數所參考內容相關資訊的函式,如下表所示。
函式 |
如果物件變數有參考則傳回 True |
---|---|
值的陣列,而不是單一值 |
|
Date 資料型別 (Visual Basic) 值,或可解譯為日期和時間值的字串 |
|
型別 DBNull 的物件,代表遺失或不存在的資料 |
|
列外狀況 (Exception) 物件,衍生自 Exception |
|
Nothing (Visual Basic),也就是目前並無物件指派給變數 |
|
數字或可解譯為數字的字串 |
|
參考型別 (Reference Type) (例如字串、陣列、委派 (Delegate) 或類別型別) |
您可使用這些函式以避免送出無效的值至運算或程序。
TypeOf 運算子
您也可以使用 TypeOf 運算子 (Visual Basic) 判斷物件變數目前是否參考特定的資料型別。 如果運算元的執行階段型別是衍生自特定型別 (或會實作特定型別),TypeOf...Is 運算式會評估為 True。
下列範例會在參考實值和參考型別 (Reference Type) 的物件變數上使用 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 變數的陣列。 當您需要處理多種資料型別和物件類別時,這麼做非常有用。 陣列中的所有元素必須有相同的宣告資料型別。 將這個資料型別宣告為 Object 可讓您儲存與陣列中其他資料型別並列的物件和類別執行個體。
請參閱
工作
HOW TO:參考物件目前的執行個體 (Visual Basic)
HOW TO:決定物件變數參考的型別 (Visual Basic)
HOW TO:判斷兩個物件是否關聯 (Visual Basic)
HOW TO:判斷兩個物件是否相同 (Visual Basic)