Правая сторона не обязательно оценивается первой. Аналогично:
foo.Bar.Baz = a + b;
В приведенном выше коде сначала выполняется оценка foo.Bar
, затем a + b
, затем вызывается метод set_Baz
, чтобы установить для свойства Baz значение, оцениваемое справа.
Итак, в вашем коде, если вы разбиваете его на части, это выглядит так:
var index = i;
// post-incremented in the original code means this comes after the line above,
// but not after the line below it.
i += 1;
myArray[index] = i;