Como determinar se dois objetos são idênticos (Visual Basic)
No Visual Basic, duas referências de variáveis são consideradas idênticas se seus ponteiros forem iguais, ou seja, se ambas as variáveis apontarem para a mesma instância de classe na memória. Por exemplo, em um aplicativo Windows Forms, convém fazer uma comparação para determinar se a instância atual (Me
) é a mesma de uma instância específica, como Form2
.
O Visual Basic fornece dois operadores para comparar ponteiros. O Operador Is retornará True
se os objetos forem idênticos e o operador IsNot retornar True
se não forem.
Determinando se dois objetos são idênticos
Para determinar se dois objetos são idênticos
Configure uma
Boolean
expressão para testar os dois objetos.Em sua expressão de teste, use o
Is
operador com os dois objetos como operandos.Is
retornaráTrue
se os objetos apontarem para a mesma instância de classe.
Determinando se dois objetos não são idênticos
Às vezes, você deseja executar uma ação se os dois objetos não forem idênticos e pode ser estranho combinar Not
e Is
, por exemplo If Not obj1 Is obj2
. Nesse caso, você pode usar o IsNot
operador.
Para determinar se dois objetos não são idênticos
Configure uma
Boolean
expressão para testar os dois objetos.Em sua expressão de teste, use o
IsNot
operador com os dois objetos como operandos.IsNot
retornaráTrue
se os objetos não apontarem para a mesma instância de classe.
Exemplo
O exemplo a seguir testa pares de Object
variáveis para ver se elas apontam para a mesma instância de classe.
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))
O código anterior exibe a saída a seguir.
objA different from objB? True
objA identical to objC? True