TypeOf 演算子 (Visual Basic)
式の結果の実行時の型に、指定された型との型互換性があるかどうかを確認します。
構文
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
指定項目
result
必須。 Boolean
値。
objectexpression
必須です。 参照型に評価される任意の式。
typename
必須です。 任意のデータ型名。
Remarks
TypeOf
演算子は、objectexpression
の実行時の型が typename
と互換性があるかどうかを調べます。 互換性は、typename
の型のカテゴリに依存します。 互換性を決定する方法を次の表に示します。
typename の型のカテゴリ |
互換性の条件 |
---|---|
クラス | objectexpression が typename 型である、または typename を継承する |
構造体 | objectexpression が typename 型である |
Interface | objectexpression が typename を実装する、または typename を実装するクラスを継承する |
objectexpression
の実行時の型が互換性の条件を満たす場合、result
は True
です。 それ以外の場合、result
は False
です。 objectexpression
が null の場合、TypeOf
...Is
は False
を返し、...IsNot
は True
を返します。
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 (Form は Control を継承する)、および IComponent (Form は IComponent を実装する Component を継承する) と互換性があります。 ただし、refForm
には Label との互換性はありません。
関連項目
.NET