Pourquoi n'y at-il pas || = ou && = opérateurs en C #?
-
27-10-2019 - |
Question
Nous avons des opérateurs d'affectation équivalentes pour tous les opérateurs logiques, Opérateurs de décalage, les opérateurs additifs et tous les opérateurs multiplicatifs.
Pourquoi les opérateurs logiques se laisser sortir? Y at-il une bonne raison technique pourquoi il est difficile?
La solution
Pourquoi les opérateurs logiques se laisser sortir? Y at-il une bonne raison technique pourquoi il est difficile?
Ils ne sont pas . Vous pouvez faire &=
ou |=
ou ^=
si vous voulez.
bool b1 = false;
bool b2 = true;
b1 |= b2; // means b1 = b1 | b2
Les opérateurs de ||
et &&
n'ont pas une forme de composé parce que franchement, ils sont un peu bête. Dans quelles circonstances vous voulez dire
b1 ||= b2;
b1 &&= b2;
de telle sorte que le côté droit est pas évalué si le côté gauche ne change pas? Il semble que quelques personnes seulement seraient effectivement utiliser cette fonction, alors pourquoi mettre en?
Pour plus d'informations sur les opérateurs composés voir mon article sérieux ici:
http://blogs.msdn.com /b/ericlippert/archive/2011/03/29/compound-assignment-part-one.aspx
et l'article de suivi-Avril Fools ici:
http://blogs.msdn.com /b/ericlippert/archive/2011/04/01/compound-assignment-part-two.aspx
Autres conseils
peut-être juste utiliser
isAdmin = isAdmin || IsGroupAdmin()
Je suppose qu'il est en partie parce que a ||= b
est une sorte de confusion, car il pourrait y avoir deux versions de la mise en œuvre: a = a || b
ou a = b || a
. Et ils agissent différemment parce que le côté droit de l'expression est parfois évaluée.