Questa documentazione è stata archiviata e non viene gestita.

Operatore && (Riferimenti per C#)

L'operatore AND condizionale (&&) esegue un AND logico degli operandi bool, ma valuta il secondo operando solo se necessario.

L'operazione

x && y

corrisponde all'operazione

x & y

con la differenza che, se x è false, y non verrà valutato, in quanto il risultato dell'operazione di AND è false indipendentemente dal valore di y . Questa condizione viene denominata anche valutazione "short circuit".

L'operatore AND condizionale non può essere sottoposto a overload. Tuttavia, anche gli overload dei normali operatori logici e degli operatori true e false vengono considerati, con qualche limitazione, overload degli operatori logici condizionali.

Nell'esempio riportato di seguito, l'espressione che utilizza l'operatore && valuta solo il primo operando.

// 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());
   }
}

Output

regular AND:
Method1 called
Method2 called
result is False
short-circuit AND:
Method1 called
result is False

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 7.11.2 Operatori logici condizionali definiti dall'utente

Mostra: