TypeOf 運算子 (Visual Basic)

檢查運算式結果的執行階段類型是否與指定的類型相容。

語法

result = TypeOf objectexpression Is typename  
result = TypeOf objectexpression IsNot typename  

組件

result
更有效率。 Boolean 值。

objectexpression
必要。 評估為參考類型的任何運算式。

typename
必要。 任何資料類型名稱。

備註

TypeOf 運算子會判定 objectexpression 的執行階段類型是否相容 typename。 相容性取決 typename 的類型分類。 下表顯示如何判斷相容性。

typename 的類型分類 相容性準則
類別 objectexpression 屬於類型 typename 或繼承自 typename
結構 objectexpression 屬於類型 typename
介面 objectexpression 實作 typename 或繼承自實作 typename 的類別

如果 objectexpression 的執行階段類別滿足相容性準則,則 resultTrue。 否則,resultFalse。 如果 objectexpression 為 null,則 TypeOf...Is 傳回 FalseIsNot 則傳回 True

TypeOf 一律會使用 Is 關鍵字來建構 TypeOf...Is 運算式,或使用 IsNot 關鍵字來建構 TypeOf...IsNot 運算式。

範例

下列範例會使用 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

另請參閱