Operator && (C#-Referenz)
Der bedingte AND-Operator (&&) führt ein logisches AND seiner bool-Operanden aus, wertet den zweiten Operanden aber nur aus, wenn dies erforderlich ist.
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 AND-Operator 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.
Beachten Sie im folgenden Beispiel, dass in dem Ausdruck, der && verwendet, nur der erste Operand ausgewertet wird.
// cs_operator_logical_and.cs
using System;
class MainClass
{
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());
}
}
Ausgabe
regular AND: Method1 called Method2 called result is False short-circuit AND: Method1 called result is False
Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:
-
7.11.2 Benutzerdefinierte bedingte logische Operatoren
Referenz
C#-OperatorenKonzepte
C# ProgrammierhandbuchWeitere Ressourcen
C#-Referenzhttp://msdn.microsoft.com/library/en-us/csspec/html/vclrfcsharpspec_7_11.asp