C# 单个+;递增前缀

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的“反面”。这里只允许使用+符号来保持一致性(如果能够使

我下载了一段代码,它提供了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关键字表示一个字段可能被同时执行的多个线程修改。出于性能原因,编译器、运行时系统甚至硬件可能会重新安排对内存位置的读写。”