Gewusst wie: Bestimmen des Bezugs zwischen zwei Objekten (Visual Basic)

Sie können zwei Objekte vergleichen, um ggf. die Beziehung zwischen den Klassen zu bestimmen, aus denen sie erstellt werden. Die IsInstanceOfType-Methode der System.Type-Klasse gibt True zurück, wenn die angegebene Klasse von der aktuellen Klasse erbt oder wenn es sich beim aktuellen Typ um eine Schnittstelle handelt, die von der angegebenen Klasse unterstützt wird.

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

  1. Rufen Sie die GetType-Methode für das Objekt auf, von dem Sie glauben, dass es dem Basistyp entsprechen könnte.

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

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

    IsInstanceOfType gibt True zurück, 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. Der vermeintliche abgeleitete Typ wird als Argument an die IsInstanceOfType-Methode übergeben.

Siehe auch