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
的執行階段類別滿足相容性準則,則 result
是 True
。 否則,result
為 False
。 如果 objectexpression
為 null,則 TypeOf
...Is
傳回 False
,IsNot
則傳回 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。