Operator && (C#-Referenz)
Aktualisiert: November 2007
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
mit der Ausnahme, dass y nicht ausgewertet wird, wenn x false ist (weil das Ergebnis der AND-Operation unabhängig vom Wert von y false lautet). 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
Beachten Sie im folgenden Beispiel, dass im Ausdruck, der && verwendet, nur der erste Operand ausgewertet wird.
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
*/
C#-Programmiersprachenspezifikation
Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:
- 7.11.2 Benutzerdefinierte bedingte logische Operatoren