2 von 2 fanden dies hilfreich - Dieses Thema bewerten.

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

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)