En realidad se refiere a una característica del lenguaje llamado "cortocircuitar" expresiones lógicas:
Lo que esto significa es la siguiente: Cuando el resultado de una expresión lógica no puede cambiar nunca más, por ejemplo, cuando está claro que la expresión se evaluará como "verdadera" o "falsa" sin importar qué, las partes restantes de la expresión no serán evaluadas.
Por ejemplo, C#, Java o JavaScript hacen eso, y puede confiar en ellos en esos idiomas (para responder a su pregunta).
En su caso, si MyClass no es nulo:
MyClass == null
evalúa como falsa
- ya que es un "o" expresión, la segunda parte todavía puede cambiar el resultado, por lo que se evalúa
myClass.Property > 0
determina el resultado final
si MyClass es nulo:
MyClass == null
un resultado verdadero
- ya que es un "o" expresión, no importa lo que sigue
- se hace no más de evaluación, el resultado final es cierto
hay lenguajes que hacen no cortocircuitar expresiones lógicas. El VB clásico es un ejemplo, aquí "myClass.Property> 0" se evaluaría y produciría un error si MyClass fuera nulo (llamado "Nothing" en VB).
En C# se define el orden preciso. – Martijn