C# 为什么int.parse(";1";)之后不允许使用后缀增量(+;+;)运算符?

C# 为什么int.parse(";1";)之后不允许使用后缀增量(+;+;)运算符?,c#,.net,C#,.net,使用int.Parse(“1”)作为后缀增量++运算符的操作数时: var result = int.Parse("1")++; C#编译器显示以下错误: 递增或递减运算符的操作数必须是变量、属性或索引器 我可以理解前缀in-或减量运算符,但后缀in-或减量运算符不能理解。 在前缀运算符的情况下,没有要执行操作的值,但在后缀运算符的情况下,将始终有一个值。属性也是如此,它在幕后是一个“getter”,因此以相同的方式返回一个值(假设,不在IL中检查) 我在这里遗漏了什么?这对你有意义吗?因为它

使用int.Parse(“1”)作为后缀增量++运算符的操作数时:

var result = int.Parse("1")++;
C#编译器显示以下错误:

递增或递减运算符的操作数必须是变量、属性或索引器

我可以理解前缀in-或减量运算符,但后缀in-或减量运算符不能理解。 在前缀运算符的情况下,没有要执行操作的值,但在后缀运算符的情况下,将始终有一个值。属性也是如此,它在幕后是一个“getter”,因此以相同的方式返回一个值(假设,不在IL中检查)


我在这里遗漏了什么?

这对你有意义吗?因为它是完全一样的东西

var result = (int.Parse("1") = int.Parse("1")+1);

确实可以指定给方法吗?

显示错误是因为
++
将值相加并将增量设置回变量、属性或索引器

在您的情况下,框架会为结果分配什么?它不能,因为它是一个仅内存的操作,并且该值不能持久化回

因此,您必须执行int.Parse(“1”)+1错误说明所有内容:“递增或递减运算符的操作数必须是变量、属性或索引器”

您正在尝试递增表达式

var result = int.Parse("1");
resunt += 1;

技术上的答案是,自动递增和自动递减运算符只处理“左值”表达式;i、 e.作业左侧的合法表达


(好的,这适用于所有支持自动递增和自动递减的语言…

您也可以更改为
var result=int.Parse(“1”);结果++嘿。。。那太酷了!!我们可以将字符串文本
“1”
更改为
“2”
:-)