次の方法で共有


方法: 2 つのオブジェクトが関連しているかどうかを判別する (Visual Basic)

2 つのオブジェクトを比較することで、それらの作成元であるクラス間のリレーションシップ (存在する場合) を特定することができます。 指定したクラスが現在のクラスを継承している場合、または現在の型が、指定したクラスでサポートされているインターフェイスである場合、System.Type クラスの IsInstanceOfType メソッドから True が返されます。

あるオブジェクトが別のオブジェクトのクラスまたはインターフェイスを継承しているかどうかを判別するには

  1. 基本データ型と考えられるオブジェクトで、GetType メソッドを呼び出します。

  2. GetType から返された System.Type オブジェクト上で、IsInstanceOfType メソッドを呼び出します。

  3. 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 メソッドに渡します。

関連項目