Compartilhar via


Como determinar se dois objetos estão relacionados (Visual Basic)

Você pode comparar dois objetos para determinar a relação, se houver, entre as classes das quais eles são criados. O método IsInstanceOfType da classe System.Type retornará True se a classe especificada herdar da classe atual ou se o tipo atual for uma interface compatível com a classe especificada.

Para determinar se um objeto herda da classe ou interface de outro objeto

  1. No objeto que você acha que pode ser do tipo base, invoque o método GetType.

  2. No objeto System.Type retornado por GetType, invoque o método IsInstanceOfType.

  3. Na lista de argumentos para IsInstanceOfType, especifique o objeto que você acha que pode ser do tipo derivado.

    IsInstanceOfType retornará True se seu tipo de argumento herdar do tipo de objeto System.Type.

Exemplo

O exemplo a seguir determina se um objeto representa uma classe derivada da classe de outro 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 o posicionamento inesperado das duas variáveis de objeto na chamada para IsInstanceOfType. O suposto tipo base é usado para gerar a classe System.Type e o suposto tipo derivado é passado como um argumento para o método IsInstanceOfType.

Confira também