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