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.