Procedura: determinare se due oggetti sono correlati (Visual Basic)

È possibile confrontare due oggetti per determinare la relazione, se presente, tra le classi da cui sono creati. Il metodo IsInstanceOfType della classe System.Type restituisce True se la classe specificata eredita dalla classe corrente o se il tipo corrente è un'interfaccia supportata dalla classe specificata.

Per determinare se un oggetto eredita dalla classe o dall'interfaccia di un altro oggetto

  1. Nell'oggetto che si ritiene sia del tipo di base richiamare il metodo GetType.

  2. Nell'oggetto System.Type restituito da GetTyperichiamare il metodo IsInstanceOfType.

  3. Nell'elenco di argomenti per IsInstanceOfType specificare l'oggetto che si ritiene sia del tipo derivato.

    IsInstanceOfType restituisce True se il tipo di argomento eredita dal tipo di oggetto System.Type.

Esempio

Nell'esempio seguente viene determinato se un oggetto rappresenta una classe derivata dalla classe di un altro oggetto.

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

Si noti la posizione imprevista delle due variabili oggetto nella chiamata a IsInstanceOfType. Il tipo di base previsto viene usato per generare la classe System.Type e il tipo derivato presunto viene passato come argomento al metodo IsInstanceOfType.

Vedi anche