I et logisk uttrykk med && og || sjekkes ikke hele uttrykket hvis det ikke er nødvendig:
int teller = 0; if (true || ++teller > 0) { Console.WriteLine("Uberørt teller: " + teller); # skriver ut: 'Uberørt teller: 0' }
Her blir ikke ++teller > 0 kjørt siden true var nok til å fortsette videre.
Om man derimot bruker | blir resultatet annerledes:
int teller = 0; if (true | ++teller > 0) { Console.WriteLine("Berørt teller: " + teller); # skriver ut: "Berørt teller: 1" }
Nå er teller forandret fordi hele det logiske uttrykket ble sjekket.