[英]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中相同的錯誤定義語義是一個非常常見的錯誤。 它沒有。 ++運算符的語義是明確定義的,並且與這里的錯誤答案描述它們的方式完全不同。 請參閱我上次回答此問題的答案:
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.