刚碰到一些没有按我认为应该做的代码.其他人认为这应该返回1吗?有没有一个很好的解释为什么它不?
int count = 0;
count++.ToString(); // Returns 1 no?
Run Code Online (Sandbox Code Playgroud)
我一直以为count ++与count = count + 1相同......
Hei*_*nzi 46
x++是一个后增量运算符.这意味着值x增加,但返回旧的(非递增的)值x(在您的情况下为0,应用于此ToString值).
要获得所需的行为,请使用预增量运算符++x.
Eri*_*ert 17
至少到目前为止发布的答案中有四个是错误的.认为++运算符具有与C中相同的错误定义语义是一个非常常见的错误. 它没有.++运算符的语义是明确定义的,并且与这里的错误答案描述它们的方式完全不同.请参阅我上次回答此问题的答案:
x ++是后增量; 当前值(0)用作结果,然后++发生.
有一点像:
var tmp = count;
count++;
Consle.WriteLine(tmp);
Run Code Online (Sandbox Code Playgroud)
预增量(++ x)将按预期运行.
| 归档时间: |
|
| 查看次数: |
5876 次 |
| 最近记录: |