Freigeben über


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

Sie können zwei Objekte miteinander vergleichen, um ggf. die Beziehung zwischen den Klassen zu ermitteln, aus denen sie erstellt wurden. Die IsInstanceOfType-Methode der System.Type-Klasse gibt True zurück, 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 stellen Sie fest, ob ein Objekt von der Klasse oder Schnittstelle eines anderen Objekts erbt

  1. Rufen Sie für das Objekt, das Sie für eine Instanz des Basistyps halten, die GetType-Methode auf.

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

  3. Geben Sie in der Argumentliste für IsInstanceOfType das Objekt an, das Sie für eine Instanz des abgeleiteten Typs halten.

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

Beispiel

Im folgenden Beispiel wird festgestellt, ob ein Objekt eine Klasse repräsentiert, die aus der Klasse eines anderen Objekts abgeleitet wurde:

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 angenommene Basistyp wird zum Generieren der System.Type-Klasse verwendet, und der angenommene abgeleitete Typ wird als Argument der IsInstanceOfType-Methode übergeben.

Siehe auch

Aufgaben

Gewusst wie: Bestimmen der Gleichheit zweier Objekte (Visual Basic)

Referenz

Object-Datentyp

GetType

System.Type

IsInstanceOfType

Konzepte

Objektvariablen in Visual Basic

Werte von Objektvariablen (Visual Basic)