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 式を使用して、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から継承するため、Control、FormがIComponentを実装するComponentから継承するため、IComponentと互換性があるため、Formと互換性があります。 ただし、 refForm は Labelと互換性がありません。

こちらも参照ください