更新 : 2007 年 11 月
オブジェクト変数には、別の場所に格納されているデータへのポインタが含まれています。データの型は、実行時に変わる可能性があります。任意のタイミングで、GetTypeCode メソッドを使用して、現在の実行時型を確認することや、TypeOf 演算子 (Visual Basic) を使用して、現在の実行時型と指定の型に互換性があるかどうかを確認できます。
オブジェクト変数で現在参照している正確な型を確認するには
オブジェクト変数で、GetType メソッドを呼び出して、System.Type オブジェクトを取得します。
Dim myObject As Object myObject.GetType()System.Type クラスで、共有メソッド GetTypeCode を呼び出してそのオブジェクト型の TypeCode 列挙値を取得します。
Dim myObject As Object Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType()) MsgBox("myObject currently has type code " & CStr(datTyp))Double など、TypeCode の列挙値と突き合わせると、取得した列挙型のメンバがどの列挙値なのかを確認できます。
オブジェクト変数の型と指定の型に互換性があるかどうかを確認するには
Is 演算子 (Visual Basic) と組み合わせて TypeOf 演算子を使用し、TypeOf...Is 式を用いてオブジェクトをテストします。
If TypeOf objA Is System.Windows.Forms.Control Then MsgBox("objA is compatible with the Control class") End IfTypeOf...Is 式は、オブジェクトの実行時型と指定の型に互換性がある場合は、True を返します。
互換性の基準は、指定の型がクラス、構造体、またはインターフェイスのいずれであるかによって異なります。一般に、オブジェクトの型と指定の型が同じ型である場合、オブジェクトの型が指定の型から派生した型である場合、またはオブジェクトの型が指定した型を実装した型である場合、オブジェクトの型と指定の型には互換性があります。詳細については、「TypeOf 演算子 (Visual Basic)」を参照してください。
コードのコンパイル方法
変数または式を型として指定することはできなません。指定する型は、クラス、構造体、インターフェイスなど、定義済みの型の名前である必要があります。これには、Integer および String などの組み込み型の型も含まれます。