6 Stimmen

Verschachtelte if-Anweisungen oder nicht

Ich hoffe, diese Frage wurde nicht schon einmal gestellt.

Ich habe eine nullable Boolean namens boolIsAllowed und eine if-Bedingung wie so:

if(boolIsAllowed.HasValue && boolIsAllowed.Value)
{
 //do something
}

Meine Frage ist dies guter Code oder wäre ich besser trennen es in eine verschachtelte if-Anweisung? Wird die zweite Bedingung geprüft, wenn boolIsAllowed.HasValue gleich false ist, und dann eine Ausnahme ausgelöst?

Ich hoffe, diese Frage ist nicht zu dumm.

Vielen Dank im Voraus.

0voto

David Neale Punkte 15770

Der zweite Operand wird nur ausgewertet, wenn der erste Operand den Wert true hat. Es besteht keine Notwendigkeit, die if Erklärungen.

0voto

Adam Houldsworth Punkte 61593

Sie sind dabei sicher. C# schließt boolesche Ausdrücke kurz, das ist der Grund:

if (Liste != null && Liste.Anzahl > 0)

Werke. Der Code macht sich nicht die Mühe, die zweite Bedingung zu bewerten, weil er weiß, dass sie unmöglich wahr sein kann, da das erste Ergebnis falsch war.

Nicht alle Sprachen tun dies, viele aber schon. In VB.NET muss man es explizit mit OrElse und AndAlso machen.

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