式の結果のランタイム型が、指定した型と型と互換性があるかどうかを確認します。
構文
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と互換性がありません。
こちらも参照ください
.NET