2

我尝试执行以下操作

i=0;
if (i++ % Max_Col_items == 0 && i !=0)
{

}

发现i中间增加了

i % Max_Col_items == 0;
i=i+1;
i !=0;

当我认为它最终会增加i时:

i % Max_Col_items == 0;
i !=0;
i=i+1;

i++任何人都可以找到有关C# 工作原理的解释吗?

4

3 回答 3

3

i++将为您提供原始值,而不是增加的值,您将在下一次使用时看到i. 如果您想获得增加的值,请使用++i.

请参阅Eric Lippert 对同一问题的详细回答

于 2012-12-03T10:34:27.063 回答
0

i++立即增加 的值,i但计算为增加前的值。

直到代码行的末尾,它才会保留iuntouched 的值,这似乎是您所期望的。

于 2012-12-03T10:36:22.790 回答
0

那是因为(正如您正确指出的那样)

我 % Max_Col_items == 0;

is an operation in itself. Once that line of operation is over (with value of i ) the increment is done.

于 2012-12-03T10:49:21.940 回答