我经常看到这个操作符(++)。我知道它最终会做什么,但似乎有一些我不理解的规则。例如,如果您在使用它的变量之前或之后放置它似乎很重要。有人可以解释一下吗?
答案 0 :(得分:12)
声明
x++;
完全等同于
x = x + 1;
除了,x
仅被评估一次(如果它是涉及属性getter的表达式,则会有所不同。)
以下两者之间的区别:
DoSomething(x++); // notice x first, then ++
DoSomething(++x); // notice ++ first, then x
这是第一个,方法DoSomething
会在增加之前看到x
的之前的值。在第二个中,它将看到 new (递增)值。
有关详细信息,请参阅MSDN上的C# Operators。
可以为您自己的类声明自定义++
运算符,在这种情况下,运算符可以执行不同的操作。如果您想定义自己的++
运算符,请参阅MSDN上的Operator Overloading Tutorial。
答案 1 :(得分:3)
http://msdn.microsoft.com/en-us/library/36x43w8w(v=VS.80).aspx
增量运算符(++)将其操作数增加1.增量运算符可以出现在其操作数之前或之后:
第一种形式是前缀增量操作。操作的结果是操作数增加后的值。
第二种形式是后缀增量操作。操作的结果是操作数增加之前的值。
答案 2 :(得分:3)
如果将++
运算符放在变量之前,它将首先递增。
如果将++
运算符放在变量之后,则会在之后递增。
例如(C#):
int x = 0;
Console.WriteLine("x is {0}", x++); // Prints x is 0
int y = 0;
Console.WriteLine("y is {0}", ++y); // Prints y is 1
希望这可以解决它。
答案 3 :(得分:0)
好吧,如果你把它像
variable++
它首先使用变量并递增它(+1) 另一方面,如果你
++variable
首先递增变量然后使用它
答案 4 :(得分:0)
另一种看待它的方法......这里有两个与前缀/后缀++相同的函数。这说明前缀在理论上更快,因为不需要临时变量来存储“先前”值:
// same as x ++;
int PostfixIncrement(ref int x)
{
int y = x;
x = x + 1;
return y;
}
// same as ++ x;
int PrefixIncrement(ref int x)
{
x = x + 1;
return x;
}
答案 5 :(得分:-3)
如果将++运算符放在变量之前,则首先递增。如果将++运算符放在变量之后,则会在变量之后递增。
例如(C#):
int x = 0; Console.WriteLine(“x is {0}”,x ++); //打印x为0
int y = 0; Console.WriteLine(“y is {0}”,++ y); //打印y是1