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

В Visual Basic две ссылки на переменные считаются идентичными, если их указатели одинаковы, то есть если оба переменных указывают на один и тот же экземпляр класса в памяти. Например, в приложении Windows Forms может потребоваться сравнить, чтобы определить, совпадает ли текущий экземпляр (Me) с конкретным экземпляром, например Form2.

Visual Basic предоставляет два оператора для сравнения указателей. Оператор Is возвращаетсяTrue, если объекты идентичны, а оператор IsNot возвращаетсяTrue, если они отсутствуют.

Определение того, идентичны ли два объекта

Определение того, идентичны ли два объекта

  1. Boolean Настройте выражение для тестирования двух объектов.

  2. В выражении тестирования используйте Is оператор с двумя объектами в качестве операндов.

    Is Возвращает значение True , если объекты указывают на тот же экземпляр класса.

Определение того, не совпадают ли два объекта

Иногда вы хотите выполнить действие, если два объекта не идентичны, и это может быть неловко объединить Not и Is, например If Not obj1 Is obj2. В таком случае можно использовать IsNot оператор.

Определение того, не совпадают ли два объекта

  1. Boolean Настройте выражение для тестирования двух объектов.

  2. В выражении тестирования используйте IsNot оператор с двумя объектами в качестве операндов.

    IsNot возвращает, True если объекты не указывают на один экземпляр класса.

Пример

В следующем примере тестируются пары Object переменных, чтобы узнать, указывают ли они на один и тот же экземпляр класса.

Dim objA, objB, objC As Object
objA = My.User
objB = New ApplicationServices.User
objC = My.User
MsgBox("objA different from objB? " & CStr(objA IsNot objB))
MsgBox("objA identical to objC? " & CStr(objA Is objC))

В предыдущем примере отображаются следующие выходные данные.

objA different from objB? True

objA identical to objC? True

См. также