Поделиться через


Практическое руководство. Определение наличия связи между двумя объектами

Обновлен: Ноябрь 2007

Сравнивая два объекта можно определить взаимосвязь, если она есть, между классами, от которых они произошли. Метод IsInstanceOfType класса System.Type возвращает значение True, если указанный класс наследует от данного класса или если данный тип является интерфейсом, поддерживаемым указанным классом.

Определить наследует ли объект от класса или интерфейса другого объекта

  1. У объекта, тип которого может быть базовым типом, вызовите метод GetType.

  2. У объекта System.Type, который был получен вызовом GetType, вызовите метод IsInstanceOfType.

  3. В списке аргументов для 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.

См. также

Задачи

Практическое руководство. Определение идентичности двух объектов

Основные понятия

Объектные переменные в Visual Basic

Значения объектных переменных

Ссылки

Тип данных Object

GetType

System.Type

IsInstanceOfType