2010-07-14 14 views
7

¿Tenemos algún operador en C# por el cual pueda evitar la evaluación de cortocircuitos y atravesar todas las condiciones?Cómo evitar la evaluación de cortocircuitos en C# mientras se realiza la misma funcionalidad

dicen

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

} 

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

Se debe evaluar todas las condiciones, independientemente de la producción obtenida. Y después de evaluar la última condición continúa según el resultado obtenido. ?

+0

¿Por qué querría evaluar la misma condición dos veces? –

+0

@Adrian: tómelo como ejemplo de muestra. La función xyz puede contener cualquier tipo de definición, puede ser un delegado u otra cosa. –

Respuesta

13

Simplemente use una sola barra, esto evaluará ambos argumentos independientemente del resultado del primer resultado.

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

También puede hacer lo mismo con Y, es decir Puede reemplazar && con un solo carácter & para obtener el mismo efecto que el anterior:

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

¡Sí, es temprano! – GenericTypeTea

+0

¿Funciona también para Javascript? –

+0

Sí, funciona igual. – GenericTypeTea

4

sólo tiene que utilizar una sola barra;

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

} 
Cuestiones relacionadas