Sono un po 'confuso su come il compilatore C# gestisce gli incrementi e i decrementi pre- e post.C# Confusioni di incrementi pre e post.
Quando il codice seguente:
int x = 4;
x = x++ + ++x;
x
avrà il valore 10 in seguito. Penso che questo sia dovuto al fatto che il pre-incremento imposta x
su 5
, che lo rende 5+5
che viene valutato su 10
. Quindi il post-incremento aggiornerà x
a 6
, ma questo valore non verrà utilizzato perché in tal caso 10
verrà assegnato a x
.
Ma quando il codice I:
int x = 4;
x = x-- - --x;
allora x
sarà 2
dopo. Qualcuno può spiegare perché questo è il caso?
Ottima domanda! E abbiamo imparato che non scrivere mai codice devi pensare a cosa potrebbe fare, ma cosa farebbe. – RvdK
Chiunque scriva codice come questo dovrebbe essere estratto e sparato. Non ci sono scuse per 'x = x ++ + ++ x;' ... mai. –
era solo una domanda "accademica" - non scriverei mai un codice come questo :-) – Schweder