TypeOf 演算子 (Visual Basic)

オブジェクト参照変数をデータ型と比較します。

result = TypeOf objectexpression Is typename

指定項目

  • result
    戻り値です。Boolean 値。

  • objectexpression
    必ず指定します。参照型に評価される式を指定します。

  • typename
    必ず指定します。データ型の名前です。

解説

TypeOf 演算子は、objectexpression のランタイム型に typename との互換性があるかどうかを判断します。互換性があるかどうかは typename の型のカテゴリによって決まります。次の表に、互換性の条件を示します。

typename の型のカテゴリ

互換性の条件

Class

objectexpression の型が typename、または typename から継承した型

Structure

objectexpression は typename 型です。

Interface

objectexpression が typename を実装しているか、typename を実装しているクラスから継承している

objectexpression のランタイム型が互換性の条件を満たしていれば、result は True になります。それ以外の場合、result は False になります。

TypeOf には必ずキーワード Is を指定して、TypeOf...Is 式の形で使用します。

使用例

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 と互換性がありません。

参照

関連項目

Is 演算子 (Visual Basic)

IsNot 演算子 (Visual Basic)

Visual Basic における演算子の優先順位

機能別の演算子一覧 (Visual Basic)

概念

Visual Basic における比較演算子

Visual Basic の演算子および式