共用方式為


TypeOf 運算子 (Visual Basic)

更新:2007 年 11 月

比較物件參考變數與資料型別。

 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 不相容。

請參閱

概念

Visual Basic 的比較運算子

Visual Basic 中的運算子和運算式

參考

Is 運算子 (Visual Basic)

IsNot 運算子

Visual Basic 中的運算子優先順序

運算子 (依功能排列)