次の方法で共有


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

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

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

  1. 基本型であると思われるオブジェクトで、 GetType メソッドを呼び出します。

  2. System.Typeによって返されるGetType オブジェクトで、IsInstanceOfType メソッドを呼び出します。

  3. IsInstanceOfTypeの引数リストで、派生型と思われるオブジェクトを指定します。

    IsInstanceOfTypeは、引数の型がTrueオブジェクト型から継承された場合にSystem.Typeを返します。

次の例では、あるオブジェクトが別のオブジェクトのクラスから派生したクラスを表すかどうかを判断します。

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

こちらも参照ください