C#中的前后递增/递减运算符

Guy*_*Guy 16 c#

在C#中,是否有人知道为什么以下将编译:

int i = 1;
++i;
i++;
Run Code Online (Sandbox Code Playgroud)

但这不会编译?

int i = 1;
++i++;
Run Code Online (Sandbox Code Playgroud)

(编译器错误:增量或减量运算符的操作数必须是变量,属性或索引器.)

Nir*_*Nir 19

你在另一个结果上运行一个操作数,增量/减量的结果是一个值 - 你不能对一个值使用递增/递减它必须是一个可以设置的变量.


Bil*_*ard 9

出于同样的原因你不能说

5++;
Run Code Online (Sandbox Code Playgroud)

要么

f(i)++;
Run Code Online (Sandbox Code Playgroud)

函数返回,而不是变量.增量运算符也返回值,但不能应用于值.