2010-08-24 23 views

risposta

32

In sostanza, sì.

L'istruzione if prevede un operatore booleano tra parentesi per determinare la valutazione dell'istruzione successiva.

Utilizzando l'operatore &&, se il primo controllo booleano Company !=null è falso, l'istruzione restituirà false e non eseguirà l'altra (Company.ID > 0).

Inoltre (per riferimento), l'operatore || restituirà true dopo la prima istruzione se è true e non valuta il secondo.

+1

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

+0

Corto-circuito a causa di '&&', non ha nulla a che vedere con 'if'. Immagino che commenterei per completare, altrimenti, +1. – Marc

+0

@Marc - aggiornato con una spiegazione più accurata, grazie. – cjk

0

Risposta breve: Sì risposta

marginalmente più: quella forma di e utilizzerà la valutazione di corto circuito in modo se la società è nullo allora non eseguire il secondo controllo.

6

MSDN:

Il condizionale-operatore AND (& &) Esegue un'operazione logica AND-dei suoi operandi booleani, ma valuta solo il secondo operando se necessario.

3

Il & & operatore è un cosiddetto operatore cortocircuito. Mette alla prova le affermazioni da sinistra a destra e interrompe il test quando uno dei test fallisce. Se si desidera eseguire tutti i test, utilizzare l'operatore &.

Maggiori informazioni si possono trovare here

3

Sì, lo fa. È possibile dimostrare questo sostituendo le condizioni per le chiamate di funzione:

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

... 

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

Qualora uscita:

func1 
Success