&&, opérateur (référence C#)
L'opérateur AND conditionnel (&&) effectue une opération AND logique sur les 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
sauf si xest false, y n'est pas évaluée, car le résultat du AND de l'opération est false indépendamment de la valeur d' y est.Ce concept porte le nom d'évaluation « de court-circuit ».
L'opérateur AND conditionnel ne peut pas être surchargé, mais la surcharge des opérateurs logiques normaux et des opérateurs true et false est, dans une certaine mesure, considérée également comme une surcharge des opérateurs logiques conditionnels.
Exemple
Dans l'exemple suivant, l'expression conditionnelle dans la deuxième instruction d' if a uniquement le premier opérande parce que l'opérande retourne false.
class LogicalAnd
{
static void Main()
{
// Each method displays a message and returns a Boolean value.
// Method1 returns false and Method2 returns true. When & is used,
// both methods are called.
Console.WriteLine("Regular AND:");
if (Method1() & Method2())
Console.WriteLine("Both methods returned true.");
else
Console.WriteLine("At least one of the methods returned false.");
// When && is used, after Method1 returns false, Method2 is
// not called.
Console.WriteLine("\nShort-circuit AND:");
if (Method1() && Method2())
Console.WriteLine("Both methods returned true.");
else
Console.WriteLine("At least one of the methods returned false.");
}
static bool Method1()
{
Console.WriteLine("Method1 called.");
return false;
}
static bool Method2()
{
Console.WriteLine("Method2 called.");
return true;
}
}
// Output:
// Regular AND:
// Method1 called.
// Method2 called.
// At least one of the methods returned false.
// Short-circuit AND:
// Method1 called.
// At least one of the methods returned false.
Spécification du langage C#
Pour plus d'informations, consultez la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.