C#码的行为
可能重复:C#码的行为,c#,post-increment,C#,Post Increment,可能重复: 考虑以下C#代码:- 我得到的输出是2。为什么i=i++没有效果?根据放置+-运算符的位置,分配的值在以下前后递增: i = ++i; 这样i将在分配之前计数 i = i++; 这样,在赋值之后,i将被计数。因为=运算符优先 i = i++; MSDN: 试试这个: int i = 2; i = ++i; // or write just ++i; Console.WriteLine(i); 这是正确的dup:看它是一个令人困惑的问题(阅读面试类型)。如果=优先,则随后发生
考虑以下C#代码:-
我得到的输出是
2
。为什么i=i++
没有效果?根据放置+
-运算符的位置,分配的值在以下前后递增:
i = ++i;
这样i
将在分配之前计数
i = i++;
这样,在赋值之后,
i
将被计数。因为=
运算符优先
i = i++;
MSDN:
试试这个:
int i = 2;
i = ++i; // or write just ++i;
Console.WriteLine(i);
这是正确的dup:看它是一个令人困惑的问题(阅读面试类型)。如果=优先,则随后发生的增量意味着i应为3。如果++优先,那么在递增之后,它应该在i中指定3。它将编译为int i=2;int-topOfStack=i;i++;i=topOfStack;是的。但它应该在我之后增加,不是吗?读一下: