Cómo saber si dos objetos están relacionados (Visual Basic)
Puede comparar dos objetos para ver la relación, si la hay, entre las clases desde las que se crean. El método IsInstanceOfType de la clase System.Type devuelve True
si la clase especificada hereda de la clase actual, o si el tipo actual es una interfaz compatible con la clase especificada.
Para saber si un objeto hereda de la clase o de la interfaz de otro objeto
En el objeto que cree que es del tipo base, invoque el método GetType.
En el objeto System.Type devuelto por GetType, invoque el método IsInstanceOfType.
En la lista de argumentos de IsInstanceOfType, especifique el objeto que cree que podría ser del tipo derivado.
IsInstanceOfType devuelve
True
si su tipo de argumento hereda del tipo de objeto System.Type.
Ejemplo
En el ejemplo siguiente se descubre si un objeto representa una clase derivada de la clase de otro objeto.
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
Observe la colocación inesperada de las dos variables de objeto en la llamada a IsInstanceOfType. El tipo base supuesto se usa para generar la clase System.Type y el tipo derivado supuesto se pasa como argumento al método IsInstanceOfType.