方法 : 2 つのオブジェクトが関連しているかどうかを決める
更新 : 2007 年 11 月
2 つのオブジェクトの各作成元クラス間の関係 (もしあれば) を確認するために、それらのオブジェクトを比較することができます。指定されたクラスが現在のクラスから継承されている場合、または指定されたクラスが現在の型をサポートしている場合、System.Type クラスの IsInstanceOfType メソッドは True を返します。
あるオブジェクトが、他のオブジェクトのクラスまたはインターフェイスを継承しているかどうかを決めるには
基本型と思われるオブジェクトで、GetType メソッドを呼び出します。
GetType によって返された System.Type オブジェクトで、IsInstanceOfType メソッドを呼び出します。
IsInstanceOfType の引数リスト内で、派生型であると思われるオブジェクトを指定します。
引数型が System.Type オブジェクト型を継承している場合、IsInstanceOfType は True を返します。
使用例
次に示すのは、一方のオブジェクトの表すクラスが、もう一方のオブジェクトのクラスから派生したものかどうかを確認する例です。
Public Class baseClass
End Class
Public Class derivedClass : Inherits baseClass
End Class
Public Class testTheseClasses
Public Sub seeIfRelated()
Dim baseObj As Object = New baseClass()
Dim derivedObj As Object = New derivedClass()
Dim related As Boolean
related = baseObj.GetType().IsInstanceOfType(derivedObj)
MsgBox(CStr(related))
End Sub
End Class
IsInstanceOfType への呼び出し内にある 2 つのオブジェクト変数が、期待どおり設定されない場合があることに注意してください。この処理では、想定される基本型を使用して System.Type クラスが生成され、想定される派生型が引数として IsInstanceOfType メソッドに渡されます。