作为支点一个Int32,为什么C#给我一个错误,当我键入线操作堆叠在C#
++this.pivot %= 21;
?
它说,
的左侧必须是变量,属性或索引。
但它应该是完美的,因为一元运算符优先于其他任何事情,并且它的结果在尝试模数之前计算。
不过,它不起作用。如果我把它放在括号内,它也不起作用。
这是为什么?有人有线索吗?
作为支点一个Int32,为什么C#给我一个错误,当我键入线操作堆叠在C#
++this.pivot %= 21;
?
它说,
的左侧必须是变量,属性或索引。
但它应该是完美的,因为一元运算符优先于其他任何事情,并且它的结果在尝试模数之前计算。
不过,它不起作用。如果我把它放在括号内,它也不起作用。
这是为什么?有人有线索吗?
因为您正在尝试做一项任务,但您在左侧有声明。
正如你可能已经知道,这样的说法:
this.pivot %= 21;
是equivelant到:
this.pivot = this.pivot % 21;
这里的左侧是一个变量。 ++this.pivot
返回的值不是变量。所以你不能指定一个值这样的东西是无效的:
12 = this.pivot % 21;
// or
int x = 23;
++x = x % 20;
这就是为什么你会收到错误信息。为了解决这个问题,你应该分开你的报表:
++this.pivot;
this.pivot %= 21;
为了可读性,您应该单独进行陈述 – dbarnes 2014-09-21 16:10:25
不能存储在另一个表达式的结果:
虽然this.pivot
是可变的,++this.pivot
显然不是,它也在%=
操作之前或之后没有占位符this.pivot
。
++ X是一个**方法**(基本上),当你有这个时会附加什么:'PlusPlus(X)= 5;'? – 2014-09-21 14:24:16