TypeOf 演算子 (Visual Basic)TypeOf Operator (Visual Basic)

式の結果の実行時の型に、指定された型との型互換性があるかどうかを確認します。Checks whether the runtime type of an expression's result is type-compatible with the specified type.


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


必須。Returned. Boolean 値。A Boolean value.

必須です。Required. 参照型に評価される任意の式。Any expression that evaluates to a reference type.

必須です。Required. 任意のデータ型名。Any data type name.


TypeOf 演算子は、objectexpression の実行時の型が typename と互換性があるかどうかを調べます。The TypeOf operator determines whether the run-time type of objectexpression is compatible with typename. 互換性は、typename の型のカテゴリに依存します。The compatibility depends on the type category of typename. 互換性を決定する方法を次の表に示します。The following table shows how compatibility is determined.

typename の型のカテゴリType category of typename 互換性の条件Compatibility criterion
クラスClass objectexpressiontypename 型である、または typename を継承するobjectexpression is of type typename or inherits from typename
構造体Structure objectexpressiontypename 型であるobjectexpression is of type typename
InterfaceInterface objectexpressiontypename を実装する、または typename を実装するクラスを継承するobjectexpression implements typename or inherits from a class that implements typename

objectexpression の実行時の型が互換性の条件を満たす場合、resultTrue です。If the run-time type of objectexpression satisfies the compatibility criterion, result is True. それ以外の場合、resultFalse です。Otherwise, result is False. objectexpression が null の場合、TypeOf...IsFalse を返し、...IsNotTrue を返します。If objectexpression is null, then TypeOf...Is returns False, and ...IsNot returns True.

TypeOf は、常に Is キーワードと共に TypeOf...Is 式を構築するか、または IsNot キーワードと共に TypeOf...IsNot 式を構築します。TypeOf is always used with the Is keyword to construct a TypeOf...Is expression, or with the IsNot keyword to construct a TypeOf...IsNot expression.


次の例では、TypeOf...Is 式でさまざまなデータ型を使用して、2 つのオブジェクト参照変数の型の互換性をテストしています。The following example uses TypeOf...Is expressions to test the type compatibility of two object reference variables with various data types.

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 を持ちます。The variable refInteger has a run-time type of Integer. Integer と互換性がありますが、Double との互換性はありません。It is compatible with Integer but not with Double. 変数 refForm は、実行時の型 Form を持ちます。The variable refForm has a run-time type of Form. この変数は、Form (同じ型)、Control (FormControl を継承する)、および IComponent (FormIComponent を実装する Component を継承する) と互換性があります。It is compatible with Form because that is its type, with Control because Form inherits from Control, and with IComponent because Form inherits from Component, which implements IComponent. ただし、refForm には Label との互換性はありません。However, refForm is not compatible with Label.

関連項目See also