【发布时间】:2013-10-28 12:22:39
【问题描述】:
我对下面代码的结果感到困惑。为什么在执行这些操作时 'b' 保留了一个看似不正确的值?
int a = 0;
int b = 5;
a = b++;
b = b++;
Console.WriteLine("For b = b++; b=" + b.ToString()); // b should be 7 but it's 6
a = 0;
b = 5;
a = b--;
b = b--;
Console.WriteLine("For b = b--; b=" + b.ToString()); // b should be 3 but it's 4
a = 0;
b = 5;
a = b + 1;
b = b + 1;
Console.WriteLine("For b = b++; b=" + b.ToString());
输出
b=6
b=4
b=6
谁能在 C# 中解释这种行为以及它是如何工作的?
【问题讨论】:
-
这是postfix increment operator的行为,是的。
-
最完美的答案可能在这里:stackoverflow.com/questions/13516689/…
-
另外,将增量分配给自身似乎根本是错误的。
b = b++不会导致b += 1,而b = ++b是浪费。
标签: c#-4.0 post-increment