有人可以解释为什么 C# ++ 运算符根据分配的变量提供不同的输出。 https://msdn.microsoft.com/en-us/library/36x43w8w.aspx
int x = 0;
int y = x++;
Console.WriteLine($"x: {x}" );
Console.WriteLine($"y: {y}" );
/*Prints
* x: 1
* y: 0
*/
我的理解是y
被设置为x
,即 (0) 然后在分配y
; x
加 1;
int x = 0;
x = x++;
Console.WriteLine($"x: {x}" );
/*Prints
* x: 0
*/
为什么相同的逻辑在这里不适用?x
应设置x
为 0,然后在赋值增加x
1 并打印 1 而不是 0
此示例相同
int x = 0;
x += x++;
Console.WriteLine($"x: {x}" );
/*Prints
* x: 0
*/
再举一个例子
int x = 0;
x += x++ + x++;
Console.WriteLine($"x: {x}" );
/*Prints
* x: 1
*/
似乎在我不理解的背景中发生了一些不同的逻辑。