Я немного запутался в том, как компилятор С# обрабатывает до и после приращений и декрементов.
Когда я закодирую следующее:
int x = 4;
x = x++ + ++x;
x
будет иметь значение 10 после этого. Я думаю, это связано с тем, что pre-increment устанавливает x
в 5
, что делает его 5+5
равным 10
. Затем пост-инкремент будет обновлять x
до 6
, но это значение не будет использоваться, потому что тогда 10
будет присвоено x
.
Но когда я код:
int x = 4;
x = x-- - --x;
тогда x
будет 2
. Может ли кто-нибудь объяснить, почему это так?