2008-09-10 11 views

Respuesta

32

De MSDN:

cortocircuitos dilemas de

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, no se llama a ese procedimiento si la expresión está en cortocircuito y no se ejecuta ningún código adicional contenido en la función. Si la lógica de su programa depende de cualquiera de esos códigos adicionales, probablemente deba evitar el cortocircuito de los operadores.

+32

Se podría argumentar que depender de su código lógico para ejecutar una función es oscuro y su lógica debería estar diseñada para no confiar en eso para mayor claridad y facilidad de mantenimiento. –

+5

Estoy de acuerdo. La verdadera lección aquí es no escribir código que no indique claramente sus efectos secundarios. –

15

Seguro: si quiere asegurarse de que ambos se evalúan los 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.

Pero, en general, debe usar AndAlso/OrElse cada vez que utilice & &/|| en C/C++/C#, que por supuesto es la gran mayoría de las veces.

Cuestiones relacionadas