私は単純なコンソールアプリケーションでポストインクリメント演算子をテストしていますが、私は完全なコンセプトを理解していないことに気付きました。それは私には不思議そうです:C#ポストインクリメント
int i = 0;
bool b = i++ == i;
Console.WriteLine(b);
出力が偽です。私はそれが本当だと思った。 2行目のAFAIKはポストインクリメントのため、コンパイラは比較を行い、1をインクリメントした後にbをtrueに割り当てます。しかし明らかに私は間違っています。その後 は、私はそのようなコードを変更:
int i = 0;
bool b = i == i++;
Console.WriteLine(b);
出力が真となっている。この時間を。最初のサンプルから何が変わったのですか?
「bool b = i == i ++;」つまり0 == 0が真となり、その後増分が発生します。最初は値を比較してからiをインクリメントしますが、最初は 'bool b = i ++ == i;' 0 == 1のように他の方法で起こっています。最初に0を読み込み、次にiをインクリメントしてから比較します時間iは1に増分されるため、彼は間違っています。 – Aamerallous
それは正しいです。最初の部分の背後にあるコンセプトを理解すれば、2番目のコードスニペットは理解できます。これはほとんどのプログラミング言語で同じです。基本的な基本概念です。 – Inconnu