& & Operador (referência de C#)
A condicional- E operador (&&) executa uma lógica- E de sua bool operandos, mas somente avalia o seu segundo operando se necessário.
Comentários
A operação
x && y
corresponde à operação
x & y
exceto que se x é false, y não é avaliada, porque o resultado da operação e é false não importa que o valor de y é.Isso é conhecido como "" avaliação de circuito curto.
A condicional- E o operador não pode ser sobrecarregado, mas sobrecargas dos operadores lógicos regulares e operadores de true e false , com certas restrições, também são considerados sobrecargas dos operadores lógicos condicionais.
Exemplo
No exemplo a seguir, a expressão condicional na segunda if instrução avalia apenas o primeiro operando como o operando retorna 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.
Especificação da linguagem C#
Para obter mais informações, consulte Especificação de linguagem do C# A especificação da linguagem é a fonte definitiva para a sintaxe e o uso da linguagem C#.