Практическое руководство. Определение наличия связи между двумя объектами (Visual Basic)
Чтобы определить связь между классами, из которых они создаются, можно сравнить два объекта. Метод IsInstanceOfTypeSystem.Type класса возвращается True
, если указанный класс наследуется от текущего класса или если текущий тип является интерфейсом, поддерживаемым указанным классом.
Определение того, наследует ли один объект от класса или интерфейса другого объекта
В объекте, который вы считаете, может быть базовым типом, вызовите GetType метод.
В объекте System.Type , возвращаемом GetTypeметодом, вызывается IsInstanceOfType .
В списке аргументов для IsInstanceOfType, укажите объект, который вы считаете, может быть производным типом.
IsInstanceOfType возвращает,
True
если его тип аргумента наследуется от System.Type типа объекта.
Пример
В следующем примере определяется, представляет ли один объект класс, производный от класса другого объекта.
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
Обратите внимание на неожиданное размещение двух переменных объекта в вызове IsInstanceOfType. Предполагаемый базовый тип используется для создания System.Type класса, и предполагаемый производный тип передается в качестве аргумента IsInstanceOfType в метод.