Freigeben über


Anleitung: Feststellen, ob zwei Objekte miteinander in Beziehung stehen (Visual Basic)

Sie können zwei Objekte vergleichen, um die Beziehung (falls vorhanden) zwischen den Klassen zu bestimmen, aus denen sie erstellt werden. Die IsInstanceOfType Methode der System.Type Klasse gibt zurück True , wenn die angegebene Klasse von der aktuellen Klasse erbt oder wenn der aktuelle Typ eine Schnittstelle ist, die von der angegebenen Klasse unterstützt wird.

So ermitteln Sie, ob ein Objekt von der Klasse oder Schnittstelle eines anderen Objekts erbt

  1. Rufen Sie bei dem Objekt, das möglicherweise vom Basistyp ist, die GetType-Methode auf.

  2. Rufen Sie die System.Type-Methode für das von GetType zurückgegebene IsInstanceOfType-Objekt auf.

  3. Geben Sie in der Argumentliste für IsInstanceOfType das Objekt an, von dem Sie glauben, dass es der abgeleitete Typ sein könnte.

    IsInstanceOfType gibt zurück True , wenn der Argumenttyp vom System.Type Objekttyp erbt.

Beispiel

Im folgenden Beispiel wird ermittelt, ob ein Objekt eine von der Klasse eines anderen Objekts abgeleitete Klasse darstellt.

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

Beachten Sie die unerwartete Platzierung der beiden Objektvariablen im Aufruf von IsInstanceOfType. Der vermeintliche Basistyp wird verwendet, um die System.Type Klasse zu generieren, und der angeblich abgeleitete Typ wird als Argument an die IsInstanceOfType Methode übergeben.

Siehe auch