HOW TO:決定物件變數參考的型別
更新:2007 年 11 月
物件變數包含儲存在任意位置的資料指標 (Pointer to Data)。在執行階段期間可變更該資料的型別。在任何時間,都可使用 GetTypeCode 方法來判斷目前的執行階段型別,或使用 TypeOf 運算子 (Visual Basic) 來找出目前的執行階段型別是否與所指定的型別相容。
若要判斷物件變數目前參考的確切型別
在物件變數上,呼叫 GetType 方法來擷取 System.Type 物件。
Dim myObject As Object myObject.GetType()
在 System.Type 類別 (Class) 上,呼叫共用方法 GetTypeCode 來擷取該物件型別的 TypeCode 列舉值。
Dim myObject As Object Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType()) MsgBox("myObject currently has type code " & CStr(datTyp))
若要判斷物件變數型別是否與所指定的型別相容
將 TypeOf 運算子與 Is 運算子 (Visual Basic) 搭配使用,即可使用 TypeOf...Is 運算式來測試物件。
If TypeOf objA Is System.Windows.Forms.Control Then MsgBox("objA is compatible with the Control class") End If
如果物件的執行階段型別與所指定的型別相容,則 TypeOf...Is 運算式會傳回 True。
相容性的條件視所指定的型別是類別、結構或介面而定。一般而言,如果物件的型別與所指定型別相同、繼承自所指定型別或實作所指定的型別,則型別會相容。如需詳細資訊,請參閱 TypeOf 運算子 (Visual Basic)。
編譯程式碼
注意所指定的型別不可是變數或運算式。而必須是已定義型別 (例如類別、結構或介面) 的名稱。這包括內建 (Intrinsic) 型別,例如 Integer 和 String。