Pok*_*u22 2 c# language-lawyer prefix-operator postfix-operator
为什么下面的代码是非法的?
using System;
class Program
{
static void Main(string[] args) {
int i = 0;
--i++;
Console.WriteLine(i);
}
}
Run Code Online (Sandbox Code Playgroud)
它给出了以下错误--i++:
The operand of an increment or decrement operator must be a variable, property or indexer
我知道这段代码没有实际用途; 我只是好奇为什么不允许这样做.我不关心它可以通过删除该行而没有其他影响来修复.由于这是用语言律师标记的,请包括语言规范中的证据.
从C#规范"7.6.9后缀增量和减量运算符":
后缀增量或减量操作的操作数必须是分类为变量,属性访问或索引器访问的表达式.操作的结果是与操作数相同类型的值.
我认为这回答了你的问题.
这也是你不能做到的原因,也是i++++括号的原因:也(i++)++给出了相同的编译错误.
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |