C# 单个+;递增前缀
我下载了一段代码,它提供了5的整数值递增,如下所示:C# 单个+;递增前缀,c#,operators,C#,Operators,我下载了一段代码,它提供了5的整数值递增,如下所示: int i =0; i = +i +5; 我通常使用: i+=5; 这两种形式有什么不同吗?如果你问i=+i+5之间是否有任何区别,它是单前缀加上的特殊含义吗?和i=i+5,不,没有 +5与5完全相同,它是-5的“反面”。这里只允许使用+符号来保持一致性(如果能够使用减号来表示数字,而不是加号,那将是“奇怪的”。如果您询问i=+i+5和i=i+5,不,没有 +5与5完全相同,它是-5的“反面”。这里只允许使用+符号来保持一致性(如果能够使
int i =0;
i = +i +5;
我通常使用:
i+=5;
这两种形式有什么不同吗?如果你问
i=+i+5之间是否有任何区别,它是单前缀加上的特殊含义吗?代码>和i=i+5代码>,不,没有
+5
与5
完全相同,它是-5
的“反面”。这里只允许使用+
符号来保持一致性(如果能够使用减号来表示数字,而不是加号,那将是“奇怪的”。如果您询问i=+i+5代码>和i=i+5代码>,不,没有
+5
与5
完全相同,它是-5
的“反面”。这里只允许使用+
符号来保持一致性(如果能够使用减号来表示数字,而不是加号,那将是“奇怪的”。在大多数情况下
i=+i+5;/i=i+5
相当于
i=i+5
但在i+=5中,i只计算一次(参见)。由于副作用,它可能在变量的情况下起作用。在大多数情况下
i=+i+5;/i=i+5
相当于
i=i+5
但在i+=5中,i只计算一次(参见)。在变量的情况下,由于副作用,它可能会起作用。+i
与i
相同。如果它是正数,则是可选的,您可以使用10
或+10
。。。。与-1
@ElConrado相反的是,从来没有一个案例。这里有一把小提琴演示了我之前评论中的假设类+i
与i
相同。如果它是正数,则是可选的,您可以使用10
或+10
。。。。与-1
@ElConrado相反的是,从来没有一个案例。这里有一把小提琴演示了我之前评论中的假设类,换句话说,-和+可以同时作为一元运算符和二元运算符,就像在数学中,+是隐式的:)换句话说,-和+可以同时作为一元运算符和二元运算符,就像在数学中,+是隐式的:)你能分享你在中遇到问题的项目吗?没有问题说明,这只是一个问题。我认为(如果我错了,请纠正我),“…计算一次…”只有在对+=
操作符的一般描述中才有意义。对于int
类型(如示例中所示),会生成完全相同的代码(1读、1加、1写)。我认为,如果x是某种特殊变量,可以在几个线程之间间接计算或共享,则可以以某种不明确的方式更改它。但是,若变量以间接方式改变,它应该是不稳定的。引用:“volatile关键字表示一个字段可能会被同时执行的多个线程修改。出于性能原因,编译器、运行时系统甚至硬件可能会重新安排对内存位置的读写操作。”您能否共享在中遇到问题的项目?没有说明问题,这只是一个问题。我认为(如果我错了,请纠正我),“…计算一次…”只有在对+=
运算符的一般描述中才有意义。对于int
类型(如示例中所示),会生成完全相同的代码(1读、1加、1写)。我认为,如果x是某种特殊变量,可以在几个线程之间间接计算或共享,则可以以某种不明确的方式更改它。但是,若变量以间接方式改变,它应该是不稳定的。引用:“volatile关键字表示一个字段可能被同时执行的多个线程修改。出于性能原因,编译器、运行时系统甚至硬件可能会重新安排对内存位置的读写。”