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
excepto que si x es false, y no se evalúa (ya que el resultado de la operación AND será false independientemente del valor 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 siguiente ejemplo, observe que la expresión que utiliza && sólo evalúa el primer operando.
class LogicalAnd
{
static bool Method1()
{
Console.WriteLine("Method1 called");
return false;
}
static bool Method2()
{
Console.WriteLine("Method2 called");
return true;
}
static void Main()
{
Console.WriteLine("regular AND:");
Console.WriteLine("result is {0}", Method1() & Method2());
Console.WriteLine("short-circuit AND:");
Console.WriteLine("result is {0}", Method1() && Method2());
}
}
/*
Output:
regular AND:
Method1 called
Method2 called
result is False
short-circuit AND:
Method1 called
result is False
*/
Especificación del lenguaje C#
Para obtener más información, vea la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.