式の結果のランタイム型が、指定した型と型と互換性があるかどうかを確認します。
構文
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