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 os mesmos, ou seja, se ambas as variáveis apontarem para a mesma instância de classe na memória. Por exemplo, em um aplicativo do Windows Forms, talvez você queira fazer uma comparação para determinar se a instância atual (Me
) é a mesma que uma instância específica, como Form2
.
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.Na expressão de teste, use o
Is
operador com os dois objetos como operandos.Is
retornaTrue
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 difícil 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.Na expressão de teste, use o
IsNot
operador com os dois objetos como operandos.IsNot
retornaTrue
se os objetos não apontarem para a mesma instância de classe.
Exemplo
O exemplo a seguir testa pares de variáveis para ver se elas apontam para a mesma instância de Object
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 exemplo anterior exibe a saída a seguir.
objA different from objB? True
objA identical to objC? True