Cómo: Determinar si dos objetos son idénticos (Visual Basic)

En Visual Basic, dos referencias de variable se consideran idénticas si sus punteros son iguales, es decir, si ambas variables apuntan a la misma instancia de clase en memoria. Por ejemplo, en una aplicación de Windows Forms, es posible que desee realizar una comparación para determinar si la instancia actual (Me) es la misma que una instancia determinada, como Form2.

Visual Basic proporciona dos operadores para comparar punteros. El operador Is devuelve True si los objetos son idénticos y el operador IsNot devuelve True si no lo son.

Determinar si dos objetos son idénticos

Para determinar si dos objetos son idénticos

  1. Configure una expresión Boolean para probar los dos objetos.

  2. En la expresión de prueba, use el Is operador con los dos objetos como operandos.

    Is devuelve True si los objetos apuntan a la misma instancia de clase.

Determinar si dos objetos son idénticos

A veces quiere realizar una acción si los dos objetos no son idénticos y puede resultar incómodo combinar Not y Is, por ejemplo If Not obj1 Is obj2. En tal caso, puede usar el operador IsNot.

Para determinar si dos objetos son idénticos

  1. Configure una expresión Boolean para probar los dos objetos.

  2. En la expresión de prueba, use el operador IsNot con los dos objetos como operandos.

    IsNot devuelve True si los objetos no apuntan a la misma instancia de clase.

Ejemplo

En el ejemplo siguiente se prueban pares de Object variables para ver si apuntan a la misma instancia de clase.

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))

El comando anterior muestra la siguiente salida.

objA different from objB? True

objA identical to objC? True

Consulte también