Sie tatsächlich beziehen sich auf eine Sprache Funktion namens „Kurzschließen logische Ausdrücke“:
Was dies bedeutet, ist dies: Wenn das Ergebnis eines logischen Ausdrucks nicht mehr ändern können, zum Beispiel wenn klar ist, dass der Ausdruck unabhängig von "wahr" oder "falsch" ausgewertet wird, werden die verbleibenden Teile des Ausdrucks nicht ausgewertet.
Zum Beispiel, C#, Java oder JavaScript tun das, und Sie können sich darauf in diesen Sprachen verlassen (um Ihre Frage zu beantworten).
In Ihrem Fall, wenn MyClass nicht null ist:
MyClass == null
das Ergebnis falsch
- da es ein „oder“ Ausdruck ist, noch der zweite Teil das Ergebnis ändern können, so wird es
ausgewertet
myClass.Property > 0
bestimmt das Endergebnis
wenn MyClass null ist:
MyClass == null
true ausgewertet
- da es ein „oder“ Ausdruck ist, ist es egal, was
- nicht mehr Auswertung folgt durchgeführt wird, ist das Endergebnis stimmt
Es Sprachen sind, die tun logische Ausdrücke nicht kurzschließen. Klassisches VB ist ein Beispiel, hier würde "myClass.Property> 0" ausgewertet werden und einen Fehler erzeugen, wenn MyClass null wäre (in VB "Nothing" genannt).
In C# ist die genaue Reihenfolge definiert. – Martijn