C# Language Opérateurs de court-circuit


Exemple

Par définition, les opérateurs booléens en court-circuit n'évalueront le deuxième opérande que si le premier opérande ne peut pas déterminer le résultat global de l'expression.

Cela signifie que si vous utilisez l'opérateur && comme firstCondition && secondCondition, il évaluera secondCondition uniquement lorsque firstCondition est true et ofcource le résultat global sera vrai seulement si firstOperand et secondOperand sont évalués à true. Ceci est utile dans de nombreux scénarios, par exemple imaginez que vous vouliez vérifier que votre liste comporte plus de trois éléments, mais vous devez également vérifier si la liste a été initialisée pour ne pas s'exécuter dans NullReferenceException . Vous pouvez y parvenir comme ci-dessous:

bool hasMoreThanThreeElements = myList != null && mList.Count > 3;

mList.Count> 3 ne sera pas coché jusqu'à ce que myList! = null soit rencontré.

Logique ET

&& est la contrepartie de court-circuit de l'opérateur booléen AND ( & ) standard.

var x = true;
var y = false;

x && x // Returns true.
x && y // Returns false (y is evaluated).
y && x // Returns false (x is not evaluated).
y && y // Returns false (right y is not evaluated).

OU logique

|| est la contrepartie de court-circuit de l'opérateur OR booléen standard ( | ).

var x = true;
var y = false;

x || x // Returns true (right x is not evaluated).
x || y // Returns true (y is not evaluated).
y || x // Returns true (x and y are evaluated).
y || y // Returns false (y and y are evaluated).

Exemple d'utilisation

if(object != null && object.Property)
// object.Property is never accessed if object is null, because of the short circuit.
    Action1();
else
    Action2();