Cómo: Determinar si dos objetos están relacionados
Actualización: noviembre 2007
Puede comprar dos objetos para determinar la relación que hay, si existe, entre las clases a partir de las cuales se crearon. El método IsInstanceOfType de la clase System.Type devuelve True si la clase especificada se hereda de la clase actual o si el tipo actual es una interfaz compatible con la clase especificada.
Para determinar si un objeto hereda de la clase o interfaz de otro objeto
En el objeto que piensa que podría ser 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 para IsInstanceOfType, especifique el objeto que piensa que podría ser del tipo derivado.
IsInstanceOfType devuelve True si su tipo de argumento hereda del tipo de objeto System.Type.
Ejemplo
El ejemplo siguiente determina 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 posición inesperada de las dos variables de objeto en la llamada a IsInstanceOfType. El tipo base supuesto se utiliza para generar la clase System.Type y el tipo derivado supuesto se pasa como argumento al método IsInstanceOfType.
Vea también
Tareas
Cómo: Determinar si dos objetos son idénticos
Conceptos
Variables de objeto en Visual Basic
Valores de las variables de objeto