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

时间:2011-02-17 15:05:10

标签: c#

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

int count = 0;

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

我一直认为count ++与count = count + 1 ...

相同

6 个答案:

答案 0 :(得分:46)

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

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

答案 1 :(得分:17)

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

What is the difference between i++ and ++i?

答案 2 :(得分:8)

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

有点像:

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

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

答案 3 :(得分:2)

(++i).ToString();

完全符合您的期望。

答案 4 :(得分:1)

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

试试这个:

(++c).ToString();

这将返回1.

From the MSDN site

  

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

     

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

答案 5 :(得分:-2)

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