
This order of evaluation is guaranteed. This can matter when the operands are results returned by embedded function calls.
The type of the result of an expression evaluation is determined as follows:
int + int = int int + long = long float + int = float float + long = float float + float = float float + double = doublewhere + represents any arithmetic or bit-wise operator.
string + any type = string string += any type = stringAny interger type less than 32 bits long is promoted to a 32-bit int before it takes part in the evaluation of an expression as follows:
byte: top 24 bits filled with the value of the sign bit short: top 16 bits filled with the value of the sign bit char: top 16 bits set to zero