TypeOf 運算子 (Visual Basic)
比較物件參考變數與資料型別。
result = TypeOf objectexpression Is typename
組件
result
已傳回。Boolean 值。objectexpression
必要項。任何評估為參考型別的運算式。typename
必要項。任何資料型別名稱。
備註
TypeOf 運算子會判斷 objectexpression 的執行階段型別是否與 typename 相容。相容性視 typename 的型別分類而定。下表顯示如何判斷相容性。
typename 的型別分類 |
相容性準則 |
---|---|
類別 |
objectexpression 的型別為 typename,或繼承自 typename |
結構 |
objectexpression 屬於 typename 型別 |
介面 |
objectexpression 會實作 typename 或繼承自實作 typename 的類別 |
如果 objectexpression 的執行階段型別滿足相容性準則,則 result 為 True。否則,result 為 False。
TypeOf 一律會與 Is 關鍵字搭配使用,以建構 TypeOf...Is 運算式。
範例
下列範例會使用 TypeOf...Is 運算式,測試兩個具有不同資料型別之物件參考變數的型別相容性。
Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)
變數 refInteger 的執行階段型別為 Integer。它與 Integer 相容,但與 Double 不相容。變數 refForm 的執行階段型別為 Form。它會與 Form 相容,因為那是它的型別、與 Control 相容,因為 Form 繼承自 Control,以及與 IComponent 相容,因為 Form 繼承自 Component (其會實作 IComponent)。不過,refForm 與 Label 不相容。