>Hi Gregory, > >http://en.csharp-online.net/ECMA-334:_14.14.2_Compound_assignment > >states that x+=y is treated as x=x+y. C# evaluates an expression left to right. Hence x is the first value in the expression and evaluated before y (your complex expression which changes x) is evaluated.