C#后增量和前增量

Ath*_*ali 4 .net c#

我有时会对速记增量操作感到困惑.

因为当我在BASIC中进行小编程时,我得到了一些如何坚持使用a = a + 1,这是一种长期痛苦的方式,即"获取当前值,为其添加1,然后将新值存储回'.

1] a = a +1 ; 

2] a++ ;

3] ++a;

4] a +=1;
Run Code Online (Sandbox Code Playgroud)

[1]和[4]在功能上有不同的表示法,对吗?

由于增量符号++之前和之后的事实,2]和3]的工作方式完全不同.对?

我可以安全地假设下面的内容吗?

int f(int x){ return x * x;}

y = f(x++) -> for x =2, f(x) = x^2

f(x)     ======> y= 2^2 =4 

x=x+1;   ======> x= 2+1 = 3 



y = f(++x) -> for x =2, f(x) = x^2

x=x+1    ===========> x = 2+1 = 3

f(x)     ===========> y =3^2 = 9
Run Code Online (Sandbox Code Playgroud)

met*_*ngs 18

区别在于运营商返回的内容:

职位 -Increment运营商"一加再加补充说:"一个,并返回值:

int a = 1;
int b = a++;
// now a is 2, b is 1
Run Code Online (Sandbox Code Playgroud)

-Increment操作"加加上一个"加一,并返回值:

    a = 1;
    b = ++a;
// now a is 2 and b is 2
Run Code Online (Sandbox Code Playgroud)


Eri*_*ert 7

首先,你应该仔细阅读这个答案:

i ++和++ i有什么区别?

仔细阅读此博客文章:

http://blogs.msdn.com/b/ericlippert/archive/2011/03/29/compound-assignment-part-one.aspx

请注意,该帖子的第二部分是愚人节的笑话,所以不要相信它说的任何内容.第一部分是严肃的.

那些应该回答你的问题.

当你只有一个普通的局部变量时,这些陈述x++; ++x; x = x + 1; x += 1;基本上都是一样的.但是一旦你偏离了普通的局部变量,事情变得更加复杂.这些行动对他们来说是微妙的.