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

  1. En el objeto que piensa que podría ser del tipo base, invoque el método GetType.

  2. En el objeto System.Type devuelto por GetType, invoque el método IsInstanceOfType.

  3. 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

Referencia

Object (Tipo de datos)

GetType

System.Type

IsInstanceOfType