||, opérateur (référence C#)
L'opérateur OR conditionnel (||) effectue une opération OR logique sur ses opérandes de type bool, mais évalue uniquement le second opérande, si nécessaire.
Notes
L'opération
x || y
correspond à l'opération
x | y
à la différence près que si la valeur true est affectée à x, y n'est pas évalué (car le résultat de l'opération OR est true, quelle que soit la valeur de y). Ce concept porte le nom d'évaluation « de court-circuit ».
L'opérateur OR conditionnel ne peut pas être surchargé, mais les surcharges des opérateurs logiques réguliers et les opérateurs true et false sont, malgré certaines limitations, considérées aussi comme des surcharges des opérateurs logiques conditionnels.
Exemple
Dans cet exemple, notez que l'expression utilisant || évalue seulement le premier opérande.
class ConditionalOr
{
static bool Method1()
{
Console.WriteLine("Method1 called");
return true;
}
static bool Method2()
{
Console.WriteLine("Method2 called");
return false;
}
static void Main()
{
Console.WriteLine("regular OR:");
Console.WriteLine("result is {0}", Method1() | Method2());
Console.WriteLine("short-circuit OR:");
Console.WriteLine("result is {0}", Method1() || Method2());
}
}
/*
Output:
regular OR:
Method1 called
Method2 called
result is True
short-circuit OR:
Method1 called
result is True
*/