2010-07-14 10 views
7

Abbiamo un operatore in C# con cui posso evitare la valutazione di cortocircuito e attraversare tutte le condizioni.Come evitare la valutazione di cortocircuito in C# mentre si fa la stessa funzionalità

dire

if(txtName.Text.xyz() || txtLastName.Text.xyz()) 
{ 

} 

public static bool xyz(this TextBox txt) 
{ 
//do some work. 
return false; 
} 

Occorre valutare tutte le condizioni indipendentemente uscita ottenuta. E dopo aver valutato l'ultima condizione continua in base al risultato ottenuto. ?

+0

Perché si desidera valutare la stessa condizione due volte? –

+0

@Adrian: prendilo come esempio di esempio. la funzione xyz può contenere qualsiasi tipo di definizione, può essere un delegato o qualcos'altro. –

risposta

13

Basta usare una singola barra, questo valuterà entrambi gli argomenti indipendentemente dal risultato del primo risultato.

if(txtName.Text.xyz() | txtLastName.Text.xyz()) { } 

È anche possibile fare lo stesso con AND, cioè È possibile sostituire && con un singolo commerciale per ottenere lo stesso effetto come sopra:

if(txtName.Text.xyz() & txtLastName.Text.xyz()) { } // Both sides will be called 
+0

Sì, è presto! – GenericTypeTea

+0

Funziona anche per Javascript? –

+0

Sì, funziona allo stesso modo. – GenericTypeTea

4

Basta utilizzare una singola barra;

if(txtName.Text.xyz() | txtLName.Text.xyz()) 
{ 

} 
Problemi correlati