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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top