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

时间:2012-11-09 12:50:38

标签: c# operators

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

7 个答案:

答案 0 :(得分:18)

他们是速记:

a += b

相同

a = a + b

等等...

所以

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

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

答案 1 :(得分:5)

请参阅7.13 Assignment operators in the spec及其小节,特别是7.13.2 Compound assignment

  

通过应用二元运算符重载决策(Section 7.2.4)来处理x op = y形式的运算,就好像操作是写入x op y 。然后,

     

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

     

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

     

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

这些是赋值运算符(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;

参见:Link

答案 4 :(得分:2)

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

答案 5 :(得分:1)

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

x = x + 1;

您可以简单地写一下:

x + = 1;

它具有相同的效果。

答案 6 :(得分:0)

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