日期:2014-05-18  浏览次数:20731 次

c#中 i=i++;的结果很奇怪 谁能帮我解释一下?
在学习c#时,发现 i=i++;的结果很奇怪 ,具体代码如下:
int i=10;
i=i++;
结果竟然还是 i=10;
按理说,先赋值,再加一,结果应该是i=11;但是结果却是i=10;感觉很是费解,各位高手, 谁能帮我解释一下?谢谢!

------解决方案--------------------
假设代码
C# code
int i=10;
i=(i++)*2;

------解决方案--------------------
c#解释 i=i++; 相当于这样
int i=10;
int tmp = i;
i=i+1;
i=tmp;
------解决方案--------------------
i = i++;

1. 取出 i 的值
2. i 自增
3. i = 刚刚取出来的值

所以 i 最终还是原来的值