如果我跟踪用户点击按钮的次数,使用clicks++
或clicks += 1
会有什么优势/劣势?
这种情况或情况会有什么不同吗?
答案 0 :(得分:14)
clicks++
将在增量之前返回clicks
的值。
clicks+=1
将在增量后返回clicks
的值。这与++clicks
如果忽略返回值,则没有区别。
虽然它不适用于您的具体情况,但是您是要通过编译时文字clicks
递增1
,而是将其他表达式解析为1
,该表达式可能会产生副作用。
答案 1 :(得分:3)
表现明智吗?没有。编译器将根据给定的体系结构进行优化,即使这样,性能差异也是不可测量的,除非用户每秒点击数百万次,即使这样,事件系统的性能问题也会比简单的增量大得多。
答案 2 :(得分:1)
如上所述没有区别,但如果您使用前缀vs后缀增量,即clicks++
vs ++clicks
,则会有所不同。
考虑例如:
int clicks = 9;
if (clicks++ == 10) // first, we compare current value of clicks (9), then increase it by 1
{
Console.WriteLine("10 clicks"); // is not shown
}
VS
int clicks = 9;
if (++clicks == 10) // first, we increase clicks by 1, then compare the value to 10
{
Console.WriteLine("10 clicks"); // gets shown
}
答案 3 :(得分:0)
性能方面,如果考虑硬件体系结构,则存在X ++(++ X,X - , - X)命令,因为它们使用率很高并且实现时运行速度比X + = 1(...)快。同样X + = 1,命令运行速度比X = X + 1快。 请注意,编译器非常聪明,可以理解他们可以将X + = 1命令编译为X ++。