为什么以下代码是非法的?
using System;
class Program
{
static void Main(string[] args) {
int i = 0;
--i++;
Console.WriteLine(i);
}
}
它给我以下错误--i++
:
The operand of an increment or decrement operator must be a variable, property or indexer
我知道这段代码没有实际用途;我很好奇为什么不允许这样做。我不在乎可以通过删除该行而没有其他影响的方式来修复它。由于此标签标记有language-lawyer,请提供语言说明中的证据。
根据C#规范“ 7.6.9后缀递增和递减运算符”:
后缀递增或递减操作的操作数必须是分类为变量,属性访问或索引器访问的表达式。运算的结果是与操作数相同类型的值。
我认为这回答了您的问题。
这也是您不能执行的原因i++++
,也不能加上括号:(i++)++
也会产生相同的编译错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句