Практическое руководство. Определение идентичности двух объектов (Visual Basic)
В Visual Basic две ссылки на переменные считаются идентичными, если их указатели одинаковы, то есть если оба переменных указывают на один и тот же экземпляр класса в памяти. Например, в приложении Windows Forms может потребоваться сравнить, чтобы определить, совпадает ли текущий экземпляр (Me
) с конкретным экземпляром, например Form2
.
Visual Basic предоставляет два оператора для сравнения указателей. Оператор Is возвращаетсяTrue
, если объекты идентичны, а оператор IsNot возвращаетсяTrue
, если они отсутствуют.
Определение того, идентичны ли два объекта
Определение того, идентичны ли два объекта
Boolean
Настройте выражение для тестирования двух объектов.В выражении тестирования используйте
Is
оператор с двумя объектами в качестве операндов.Is
Возвращает значениеTrue
, если объекты указывают на тот же экземпляр класса.
Определение того, не совпадают ли два объекта
Иногда вы хотите выполнить действие, если два объекта не идентичны, и это может быть неловко объединить Not
и Is
, например If Not obj1 Is obj2
. В таком случае можно использовать IsNot
оператор.
Определение того, не совпадают ли два объекта
Boolean
Настройте выражение для тестирования двух объектов.В выражении тестирования используйте
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