簡體   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