Visual Basic 言語リファレンス
TypeOf 演算子 (Visual Basic)

更新 : 2007 年 11 月

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

result = TypeOf objectexpression Is typename
指定項目

result

戻り値です。Boolean 値。

objectexpression

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

typename

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

解説

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

typename の型のカテゴリ

互換性の条件

クラス

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

構造体

objectexpression の型が typename

インターフェイス

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

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

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

使用例

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

Visual Basic
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 を実装しているから) です。しかし、refFormLabel と互換性がありません。

参照

概念

参照

タグ :


Page view tracker