Comment : déterminer si deux objets sont liés (Visual Basic)
Vous pouvez comparer deux objets pour déterminer la relation, le cas échéant, entre les classes à partir desquelles ils sont créés. La méthode IsInstanceOfType de la classe System.Type retourne True
si la classe spécifiée hérite de la classe actuelle, ou si le type actuel est une interface prise en charge par la classe spécifiée.
Pour déterminer si un objet hérite de la classe ou de l’interface d’un autre objet
Sur l’objet que vous pensez être du type de base, appelez la méthode GetType.
Sur l’objet System.Type retourné par GetType, appelez la méthode IsInstanceOfType.
Dans la liste d’arguments pour IsInstanceOfType, spécifiez l’objet que vous pensez être du type dérivé.
IsInstanceOfType retourne
True
si son type d’argument hérite du type d’objet System.Type.
Exemple
L’exemple suivant détermine si un objet représente une classe dérivée de la classe d’un autre objet.
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
Notez l’emplacement inattendu des deux variables d’objet dans l’appel à IsInstanceOfType. Le type de base supposé est utilisé pour générer la classe System.Type, et le type dérivé supposé est passé en tant qu’argument à la méthode IsInstanceOfType.