为什么不能连锁经营?
int test = 5;
test++++;
OR
int test = 5;
++test++;
此代码给出编译时错误。
递增或递减运算符的操作数必须是变量、属性或索引器。
我完全理解这一点,如果允许的话,将是一个完整的代码味道,几乎没有现实世界的用途。我不完全理解为什么这会导致错误。我几乎期望的价值test
每个语句后为 7。
基本上,这是由于规范的第 7.6.9 节:
后缀递增或递减运算的操作数必须是分类为变量、属性访问或索引器访问的表达式。运算结果是与操作数类型相同的值。
第二句话的意思是i++
被分类为value(不是变量,不像i
) 并且第一句话阻止它成为运算符的操作数。
我怀疑它的设计方式是为了简单起见,以避免出现你真的不想陷入的奇怪情况 - 不仅仅是你给出的代码,还有诸如:
Foo(ref i++);
i++ = 10;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)