这些(+ =, – =,* =,/ =)运算符是什么意思?

我一直在寻找各地,弄清楚这些是什么意思以及它们是如何使用的+=-=*=/= ,我发现的最多的是“增加的分配”,“按差异分配”, “按产品分配”,“按商数分配”等,但我无法弄清楚它们何时或如何使用。 如果有人能够向我解释这一点,我将非常感激。 谢谢

它们是速记:

a += b

是相同的

a = a + b

等等…

所以

  • a -= b相当于a = a - b
  • a *= b相当于a = a * b
  • a /= b相当于a = a / b

正如Kevin Brydon建议的那样 – 熟悉C#中的运算符。

请参阅规范及其小节中的7.13 Assignment operators ,特别是7.13.2 Compound assignment

x op = yforms的操作通过应用二元运算符重载决策 (见第7.2.4节 )来处理,就好像操作是用x op y编写的一样。 然后,

•如果所选运算符的返回类型可隐式转换为x的类型,则操作将计算为x = x op y,但x仅计算一次。

•否则,如果所选运算符是预定义运算符,如果所选运算符的返回类型可显式转换为x类型,并且如果y可隐式转换为x类型,则操作将计算为x =( T)(x op y),其中T是x的类型,除了x仅被计算一次。

•否则,复合赋值无效,并发生编译时错误。

 a+=1 means a = a+1 a-=2 means a = a-2 a*=3 means a = a*3 a/=4 means a = a/4 

这些是赋值运算符(Shorthands)

 a += 1; is equal to a = a + 1; b -= 1; is equal to b = b - 1; a *= 1; is equal to a = a * 1; b /= 1; is equal to b = b / 1; 

参考: 链接

粗略地说, var *operator*= expression表示var = var *operator* expression 。 另外,我听说某处有文档。

这是一个简短的forms。 所以不要写:

x = x + 1;

你可以简单地写:

x + = 1;

它具有相同的效果。

这些都是速记运营商。
当您执行操作并将结果存储到它们之间的变量之一时,将使用这些。 那就是你将结果存储到你的一个操作数假设的例子中
1)X = X + Y;
在这里你可以做x + = y;
ex 2)x = x + 1;
在这里你可以做x + = 1;