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

  1. Configure uma Boolean expressão para testar os dois objetos.

  2. Na expressão de teste, use o Is operador com os dois objetos como operandos.

    Is retorna 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 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

  1. Configure uma Boolean expressão para testar os dois objetos.

  2. Na expressão de teste, use o IsNot operador com os dois objetos como operandos.

    IsNot retorna True 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

Consulte também