方法: オブジェクト変数で参照している型を確認する (Visual Basic)

オブジェクト変数には、他の場所に格納されているデータへのポインターが含まれています。 データの種類は、実行時に変更可能です。 いつでも、GetTypeCode メソッドを使用して現在の実行時型を確認できます。TypeOf 演算子 を使用して、現在の実行時型が、指定した型と互換性があるかどうかを調べることもできます。

オブジェクト変数で現在参照している正確な型を確認するには

  1. オブジェクト変数で、GetType メソッドを呼び出して、System.Type オブジェクトを取得します。

    Dim myObject As Object
    myObject.GetType()
    
  2. System.Type クラスで、共有メソッド GetTypeCode を呼び出して、オブジェクトの型の TypeCode 列挙値を取得します。

    Dim myObject As Object
    Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType())
    MsgBox("myObject currently has type code " & CStr(datTyp))
    

    TypeCode 列挙値は、Double など、目的の列挙メンバーに対してテストできます。

オブジェクト変数の型が、指定した型と互換性があるかどうかを判断するには

  • TypeOf 演算子を Is 演算子と組み合わせて使用して、TypeOf...Is 式でオブジェクトをテストします。

    If TypeOf objA Is System.Windows.Forms.Control Then
        MsgBox("objA is compatible with the Control class")
    End If
    

    TypeOf...Is 式では、オブジェクトの実行時型が、指定した型と互換性がある場合に True が返されます。

    互換性の基準は、指定した型がクラス、構造体、またはインターフェイスのいずれであるかによって異なります。 一般に、オブジェクトが、指定した型と同じ型である、指定した型を継承する、または実装する場合、その型は互換性があります。 詳細については、「TypeOf 演算子」を参照してください。

コードのコンパイル

指定する型を変数または式にすることはできません。 クラス、構造体、インターフェイスなど、定義済みの型の名前である必要があります。 これには、IntegerString などの組み込み型が含まれます。

関連項目