if I have the following bool:
bool success = true;
Will the following three lines of code store the same results in success:
1 - success &= SomeFunctionReturningABool();
2 - success = success & SomeFunctionReturningABool();
3 - success = success && SomeFunctionReturningABool();
I found an article stating that 1 is a shortcut for 2 – but is 2 the same as 3 or is my application going to explode on execution of this line…
For boolean type, single
&evaluates all operands, while double&&only evaluates while necessary (i.e. if the first operand is false, it won’t bother to evaluate the second one), also known as “short-circuit” evaluation.Source: http://msdn.microsoft.com/en-us/library/2a723cdk(v=vs.80).aspx
As for the
&=assignment operator, it works same as single&.