2010-08-24 21 views

Respuesta

32

Esencialmente, sí.

La instrucción if espera un operador booleano entre paréntesis para determinar la evaluación de la siguiente instrucción.

Usando el operador &&, si la primera verificación booleana Company !=null es falsa, declarará que se devuelve falso y no ejecutará el otro (Company.ID > 0).

También (de referencia), utilizando el operador || devolverá verdadero después de la primera declaración si es verdadera y no evaluará la segunda.

+1

Referencia: http://msdn.microsoft.com/en-us/library/2a723cdk.aspx – cofiem

+0

Se producirá un cortocircuito debido a '&&', no tiene nada que ver con 'if'. Me imagino que comentaría esto para estar completo, de lo contrario, +1. – Marc

+0

@Marc - actualizado con una explicación más precisa, gracias. – cjk

0

Respuesta corta: Sí respuesta

marginalmente más larga: la forma de la evaluación y utilizará un cortocircuito por lo que si la empresa es nulo entonces no va a realizar la segunda comprobación.

6

MSDN:

El condicional-operador AND (& &) realiza una lógicas-Y de sus operandos BOOL, pero sólo evalúa su segundo operando si es necesario.

3

El operador & & es un denominado operador de cortocircuito. Prueba las declaraciones de izquierda a derecha y deja de probar una vez que falla una de las pruebas. Si desea que se ejecuten todas las pruebas, use el operador &.

Más información se puede encontrar here

3

Sí, lo hace. Puede probar esto mediante la sustitución de las condiciones para las llamadas de función:

if (myfunc() && myfunc2()) 
{ 
    console.writeline("Success"); 
} 

... 

bool myfunc() 
{ 
    console.writeline("func1"); 
    return false; 
} 
bool myfunc2() 
{ 
    console.writeline("func2"); 
    return true; 
} 

es la Salida:

func1 
Success 
Cuestiones relacionadas