Operador && (Referencia de C#)
El operador AND condicional (&&) realiza una operación lógica AND de sus operandos de tipo bool, pero sólo evalúa su segundo operando si es necesario.
Comentarios
La operación
x && y
se corresponde con la operación
x & y
pero si xes false, y no se evalúa, porque el resultado de la operación de AND es false independientemente de cuál sea la configuración de y . Esto se conoce como evaluación "cortocircuitada".
El operador AND condicional no se puede sobrecargar, pero las sobrecargas de los operadores lógicos normales y los operadores true y false también se consideran, con ciertas restricciones, sobrecargas de los operadores lógicos condicionales.
Ejemplo
En el ejemplo siguiente, la expresión condicional en la segunda instrucción de if evalúa sólo el primer operando porque el operando devuelve 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.
Especificación del lenguaje C#
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.