Operator && (C#-Referenz)
Der bedingte Operator AND (&&) führt ein logisches AND seiner bool-Operanden aus, wertet den zweiten Operanden aber nur aus, wenn dies erforderlich ist.
Hinweise
Die Operation
x && y
entspricht der Operation
x & y
x, wenn der Ausnahme, dass falseist, wird y nicht ausgewertet, weil das Ergebnis der AND-Operation false ist, unabhängig vom Wert von y ist.Dies wird als "Kurzschlussauswertung" bezeichnet.
Der bedingte Operator AND kann nicht überladen werden, aber Überladungen der regulären logischen Operatoren true und false werden, mit gewissen Einschränkungen, auch als Überladung der bedingten logischen Operatoren aufgefasst.
Beispiel
Im folgenden Beispiel wird der bedingte Ausdruck in der zweiten if-Anweisung nur den ersten Operanden aus, da der Operand falsezurückgibt.
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.
C#-Programmiersprachenspezifikation
Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.