以下のコードの結果に混乱しています。これらの操作を行うときに、'b' が一見正しくない値を保持するのはなぜですか?
int a = 0;
int b = 5;
a = b++;
b = b++;
Console.WriteLine("For b = b++; b=" + b.ToString()); // b should be 7 but it's 6
a = 0;
b = 5;
a = b--;
b = b--;
Console.WriteLine("For b = b--; b=" + b.ToString()); // b should be 3 but it's 4
a = 0;
b = 5;
a = b + 1;
b = b + 1;
Console.WriteLine("For b = b++; b=" + b.ToString());
出力
b=6
b=4
b=6
C# でのこの動作と、それがどのように機能するかを説明できる人はいますか?