Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es la diferencia entre And y AndAlso en el lenguaje VB.net?

¿Cuál es la diferencia entre And y AndAlso en el lenguaje VB.net?

AndAlso es un operador AND lógico de cortocircuito, y And tiene dos significados: operador AND lógico sin cortocircuito. Operador AND bit a bit

Dim c=a AndAlso b En la expresión, si es el resultado de la expresión. a es falso, no importa cuál sea la expresión b, no se evaluará y luego el valor de c se devolverá directamente

Dim c=a Y b En la expresión, no importa qué expresiones a y b son, se completan y devuelven el valor de c después del cálculo

La diferencia entre AndAlso y And, además de las ventajas de rendimiento, es más importante semántica

Si a Then

Si b Entonces

Fin Si

Fin Si

Equivalente a Si a YTambién b Entonces pero no igual a Si a Y b Entonces

Considere esta situación:

Dim m As ClassM=****

Dim c=m no es nada y también m.Succeeded

Este juicio se encuentra a menudo en la programación real. Si AndAlso se reemplaza por And, se generará NullReferenceException en el caso de m Is Nothing, y AndAlso puede garantizar que no se generará NullReferenceException.

Al realizar operaciones lógicas. operaciones, y solo es valioso en un caso: no solo desea obtener el valor de c, sino que desea ejecutar el procedimiento almacenado b de todos modos, por lo que puede asegurarse de que a=False no afecte la ejecución de b. En otros casos, asegúrese de utilizar AndAlso

OrElse y Or de la misma manera que el juicio inverso del juicio anterior

Dim c=m Is Nothing OrElse m.Failed

también se utiliza a menudo. Por supuesto, al realizar operaciones de bits, solo puede usar And y Or. AndAlso y OrElse no tienen funciones de operación de bits

.