當我在一個簡單的控制檯應用程序中測試後增量操作符時,我意識到我不理解完整的概念。這對我來說很奇怪:C#Post Increment
int i = 0;
bool b = i++ == i;
Console.WriteLine(b);
輸出一直是錯誤的。我曾預料這將是事實。 AFAIK,在第2行,由於增量後,編譯器做了比較,並在我增加1後將b賦值爲真。但顯然我錯了。 之後,我修改了這樣的代碼:
int i = 0;
bool b = i == i++;
Console.WriteLine(b);
此時輸出爲真。第一個樣本有什麼變化?
在第二種情況下'bool b = i == i ++;'即0 == 0這是真的,然後增量發生。就像第一個值比較,然後我增加。但在第一種情況下,它發生其他方式像'bool b = i ++ == i';即0 == 1它首先讀取0然後增加i,然後比較它時間我增加到1,這就是爲什麼他會變得虛假。 – Aamerallous
這是正確的。如果你理解第一部分背後的概念,那麼第二部分代碼是可以自我理解的。在大多數編程語言中它是一樣的,這是一個基本的基本概念。 – Inconnu