What happens if the first part of an if-structure is false?

c#, if-statement

Solution

It is the `&&` that is important. This is short-circuiting, so the `Count` is never evaluated; The conditions are evaluated left-to-right.

There is also a non-short-circuiting operator (`&`), but it is very rare to see in an if test; it is mainly intended for bitwise operations (on `int` etc).

From the spec:

Conditional logical operators

The `&&` and `||` operators are called the conditional logical operators. They are also called the “short-circuiting” logical operators.

...

The `&&` and `||` operators are conditional versions of the `&` and `|` operators:

- The operation `x && y` corresponds to the operation `x & y`, except that `y` is evaluated only if `x` is not `false`.

- The operation `x || y` corresponds to the operation `x | y`, except that `y` is evaluated only if `x` is not `true`.

Problem

I was wondering what happens when a program processes an if-structure with multiple conditions. I have an idea, but I'm not sure about it. I'll give an example: ``` List<string> myTestList = null; if (myTestList != null && myTestList.Count > 0) { //process } ``` The list is null. When processing the if statement, will it go from left to right exiting the if as soon as one condition is false? I've tried it and seems to throw no errors, so I assume the above explains it, but I'm not sure.

Original source