繁体   English   中英

“count ++”在C#中返回什么?

[英]What does “count++” return in C#?

刚碰到一些没有按我认为应该做的代码。 其他人认为这应该返回1吗? 有没有一个很好的解释为什么它不?

int count = 0;

count++.ToString(); // Returns 1 no?

我一直以为count ++与count = count + 1相同......

x++是一个增量运算符。 这意味着x的值递增,但返回x (非递增)值(在您的情况下为0,应用ToString )。

要获得所需的行为,请使用增量运算符++x

至少到目前为止发布的答案中有四个是错误的。 认为++运算符具有与C中相同的错误定义语义是一个非常常见的错误。 它没有。 ++运算符的语义是明确定义的,并且与这里的错误答案描述它们的方式完全不同。 请参阅我上次回答此问题的答案:

i ++和++ i有什么区别?

x ++是后增量; 当前值(0)用作结果,然后++发生。

有一点像:

var tmp = count;
count++;
Consle.WriteLine(tmp);

预增量(++ x)将按预期运行。

(++i).ToString();

完全符合你的期望。

您的原始代码将始终显示为0。

试试这个:

(++c).ToString();

这将返回1。

从MSDN站点

第一种形式是前缀增量操作。 操作的结果是操作数增加后的值。

第二种形式是后缀增量操作。 操作的结果是操作数增加之前的值。

不,++计数返回“1”。 count ++。ToString()执行ToString()方法,然后递增计数,因此返回“0”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM