次の方法で共有


TypeOf 演算子 (Visual Basic)

式の結果のランタイム型が、指定した型と型と互換性があるかどうかを確認します。

構文

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

部品

result
返さ れる。 Boolean 値です。

objectexpression
必須。 参照型に評価されるすべての式。

typename
必須。 任意のデータ型名。

注釈

TypeOf演算子は、objectexpressionの実行時の型がtypenameと互換性があるかどうかを判断します。 互換性は、 typenameの種類カテゴリによって異なります。 次の表は、互換性がどのように決定されるかを示しています。

の種類カテゴリ typename 互換性条件
クラス objectexpressiontypename 型であるか、または継承される typename
構造 objectexpressiontypename 型です
インターフェイス objectexpression は、 typename を実装するか、実装するクラスから継承します。 typename

objectexpressionの実行時の種類が互換性条件を満たしている場合、resultTrue。 それ以外の場合、resultFalse です。 objectexpressionが null の場合、TypeOf...IsFalseを返し、...IsNotTrueを返します。

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があります。 FormControlから継承するため、ControlFormIComponentを実装するComponentから継承するため、IComponentと互換性があるため、Formと互換性があります。 ただし、 refFormLabelと互換性がありません。

こちらも参照ください