Share via


TypeOf 演算子 (Visual Basic)

式の結果の実行時の型に、指定された型との型互換性があるかどうかを確認します。

構文

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

指定項目

result
必須。 Boolean 値。

objectexpression
必須です。 参照型に評価される任意の式。

typename
必須です。 任意のデータ型名。

Remarks

TypeOf 演算子は、objectexpression の実行時の型が typename と互換性があるかどうかを調べます。 互換性は、typename の型のカテゴリに依存します。 互換性を決定する方法を次の表に示します。

typename の型のカテゴリ 互換性の条件
クラス objectexpressiontypename 型である、または typename を継承する
構造体 objectexpressiontypename 型である
Interface objectexpressiontypename を実装する、または typename を実装するクラスを継承する

objectexpression の実行時の型が互換性の条件を満たす場合、resultTrue です。 それ以外の場合、resultFalse です。 objectexpression が null の場合、TypeOf...IsFalse を返し、...IsNotTrue を返します。

TypeOf は、常に Is キーワードと共に TypeOf...Is 式を構築するか、または IsNot キーワードと共に TypeOf...IsNot 式を構築します。

次の例では、TypeOf...Is 式でさまざまなデータ型を使用して、2 つのオブジェクト参照変数の型の互換性をテストしています。

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 (FormControl を継承する)、および IComponent (FormIComponent を実装する Component を継承する) と互換性があります。 ただし、refForm には Label との互換性はありません。

関連項目