2010-07-14 6 views
7

Avons-nous un opérateur en C# par lequel je peux éviter l'évaluation de court-circuit et traverser à toutes les conditions.Comment éviter l'évaluation de court-circuit en C# tout en faisant la même fonctionnalité

disent

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

} 

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

Il doit évaluer toutes les conditions de la production, quelle que soit obtenue. Et après avoir évalué la dernière condition continue en fonction du résultat obtenu. ?

+0

Pourquoi voudriez-vous évaluer le même état deux fois? –

+0

@Adrian: Prenez-le comme exemple d'exemple. La fonction xyz peut contenir n'importe quel type de définition, peut être un délégué ou autre chose. –

Répondre

13

Il suffit d'utiliser une seule barre, cela évaluera les deux arguments quel que soit le résultat du premier résultat.

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

Vous pouvez également faire la même chose avec ET, à savoir Vous pouvez remplacer && avec un seul esperluette pour obtenir le même effet que ci-dessus:

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

Oui, c'est tôt! – GenericTypeTea

+0

Cela fonctionne aussi pour Javascript? –

+0

Oui, ça marche pareil. – GenericTypeTea

4

Il suffit d'utiliser une seule barre;

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

} 
Questions connexes