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