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
Configure una expresión
Boolean
para probar los dos objetos.En la expresión de prueba, use el
Is
operador con los dos objetos como operandos.Is
devuelveTrue
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
Configure una expresión
Boolean
para probar los dos objetos.En la expresión de prueba, use el operador
IsNot
con los dos objetos como operandos.IsNot
devuelveTrue
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