¿Debo usar siempre los operadores AndAlso y OrElse?


¿Hay alguna vez una circunstancia en la que no me gustaría utilizar el AndAlso operator rather than the And ¿operadora? or o en la que no me gustaría utilizar el OrElse operator rather than the Or ¿operadora?

Author: ckittel, 2008-09-10

2 answers

De MSDN :

Compensaciones de cortocircuito

El cortocircuito puede mejorar el rendimiento al no evaluar una expresión que no puede alterar el resultado de la operación lógica. Sin embargo, si esa expresión realiza acciones adicionales, el cortocircuito omite esas acciones. Por ejemplo, si la expresión incluye una llamada a un procedimiento de función, ese procedimiento no se llama si la expresión está en cortocircuito, y cualquier código adicional contenido en el La función no se ejecuta. Si la lógica de su programa depende de cualquiera de ese código adicional, probablemente debería evitar los operadores de cortocircuito.

 32
Author: Vaibhav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-10 18:56:39

¿Hay alguna circunstancia en la que no quiera usar el operador AndAlso en lugar del operador Y?

Sure: si desea asegurarse de que se evalúan ambos lados de la expresión. Este podría ser el caso si, por ejemplo, ambos lados son llamadas a métodos que devuelven booleanos como resultado de alguna otra operación que tenga un efecto secundario.

Pero en general, usted debe andso / OrElse cada vez que utilizaría & & / / / en C / C++/ C#, que por supuesto es la gran mayoría del tiempo.

 15
Author: Joel Coehoorn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-09 13:24:35