5 Stimmen

Fährt der Compiler mit der Auswertung eines Ausdrucks fort, bei dem alle wahr sein müssen, wenn der erste Ausdruck falsch ist?

Ich bin mir sicher, dass diese Frage schon einmal beantwortet wurde, also entschuldige ich mich, aber ich konnte nicht die richtigen Suchbegriffe finden, um die Antwort zu finden.

Ist in dem folgenden Codebeispiel db.GetRecords().Any() hingerichtet werden?

string s = "Z";
bool x = s.IndexOfAny(new[] { 'A', 'B' }) > 0 &&
         db.GetRecords().Any();

1voto

DanDan Punkte 10195

Es handelt sich um einen Kurzschluss, der es Ihnen ermöglicht, Dinge wie diese zu tun:

if(ob && ob.somefunc()) { ... }

wenn beide Operationen ausgewertet würden, bestünde die Möglichkeit, dass ein Null-Objekt referenziert wird, was eine Laufzeitausnahme wäre.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X