C# - 使用+ = 1和++会有什么不同?

时间:2014-01-28 15:42:44

标签: c# visual-studio visual-studio-2013

如果我跟踪用户点击按钮的次数,使用clicks++clicks += 1会有什么优势/劣势?

这种情况或情况会有什么不同吗?

4 个答案:

答案 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 ++。