Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#码的行为_C#_Post Increment - Fatal编程技术网

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;是的。但它应该在我之后增加,不是吗?读一下: