Run this method:
public void test()
{
bool b;
int i=0;
b=false;
i=0;
b=(b && i++==1);
Console.WriteLine(i.ToString());
b=false;
i=0;
b&=i++==1;
Console.WriteLine(i.ToString());
}
Notice how in the first syntax, i++ is NOT evaluated (because of
short-circuit evaluation) but in the second syntax i++ is evaluated. I
wonder if this was intentional or an oversight. It burned me in a situation
when I was counting on short-circuit evaluation.
<joel>