c # Boolesche Operatoren - normal oder kurz

8

Frage zu BOOLEAN Operator '|' und '||'. Der einzige Unterschied, den ich zwischen diesen beiden Betreibern finden kann, ist; bei Verwendung von '||' Die rechte Seite des Ausdrucks wird nicht ausgewertet, wenn die linke Seite wahr ist .

Außerhalb der Personenpräferenz, warum würde man '|' über '||' für boolesche Tests?

%Vor%     
gh9 14.01.2013, 19:34
quelle

3 Antworten

17

Es ist in erster Linie ein Problem, wenn die Operation Nebenwirkungen hat:

Betrachten Sie Folgendes:

%Vor%

Da die MoveNext -Operationen Nebeneffekte verursachen, kann es wichtig sein, dass beide Seiten von | ausgeführt werden, unabhängig davon, ob die erste wahr ist.

    
Servy 14.01.2013, 19:38
quelle
4
  

Warum sollte man '|' über '||' für boolesche Tests?

Wenn (aus irgendeinem Grund) die rechte Seite Nebenwirkungen hat, die auftreten müssen.

Dies ist jedoch im Allgemeinen keine gute Übung.

    
D Stanley 14.01.2013 19:36
quelle
3
  

Außerhalb der Personenpräferenz, warum würde man '|' über '||' für boolesche Tests?

Gerade weil Sie wollen wollen beide Seiten ausgewertet werden. Es kann Nebenwirkungen geben, die Sie in beide Richtungen auftreten müssen.

Es ist selten, aber es ist machbar.

    
Jon Skeet 14.01.2013 19:35
quelle

Tags und Links