Quizás uno de los literales booleanos solía ser una variable, y simplemente no pensaron cambiar el operador cuando cambiaron el operando. Obviamente, la lógica es equivalente.
Es más probable que pensaran que, en el segundo caso, quieren conservar el resultado de evaluar la primera condición "si". Por supuesto, eso es falso razonamiento.
una declaración equivalente más simple:
bool tmp = somecase | someOtherCase;
EDITAR
Como notas pickypg, esta declaración podría ser confuso, ya que la mayoría de la gente no espera |
con valores booleanos, y muchos no lo notará , o no piensa en las implicaciones de los efectos secundarios. La mejor manera de ser explícito (si de hecho hay efectos secundarios) sería la solución de minitech: simplemente cambie el |=
al =
.
O, si no hay efectos secundarios en la expresión someOtherCase
, use la solución de Jakub Konecki: someCase || someOtherCase
.
¿El lado derecho es realmente un "verdadero" constante? Usar '| =' en bools es perfectamente razonable, usar '| = true' rara vez lo es. – CodesInChaos
Sabe que incluso [msdn] (http://msdn.microsoft.com/en-us/library/h5f1zzaw.aspx) enumera un booleano y los operadores '| =' en su ejemplo ... –