2010-07-06 4 views
35

dado dos booleano, la forma de llegar a la más elegante un trazador de líneas que calcula la operación XOR en C#?operación XOR de dos booleana campo

Sé que se puede hacer esto mediante una combinación de switch o ifelse, pero eso haría que mi código sea bastante feo.

Respuesta

59
bool xorValue = bool1^bool2; 
+3

Supongo que no hay operador '^^' ya que el cortocircuito XOR no es posible, ya que debe evaluar ambos valores en todos los casos. –

+3

Personalmente creo que 'bool ElegantResult = ElegantBoolean1^ElegantBoolean2;' es un poco más elegante ... pero creo que está realmente en el ojo del espectador –

48

OK para añadir un poco de contexto: Usted puede mirar aquí Tables

Allí se puede ver que "exclusiva o" es básicamente lo mismo que "no es igual". Así que usted podría utilizar este (con booleano):

if(X != Y)... 

Pero si desea mostrar directamente a las personas que quiere decir "XOR" sólo tiene que utilizar las otras respuestas aquí.

+0

Me encantó esta solución. Debería estar arriba. – aod

1

creo que debería ayudar:

A^B ? TrueOperation() : FalseOperation();