7

我一直在到处寻找这些是什么意思以及它们是如何使用的,,,,,我发现最多的是它们是,“加法分配”,“差异分配”,“产品分配”,+=-=分配by Quotient”等,但我不知道何时或如何使用它们。如果有人可以向我解释一下,我将不胜感激。谢谢*=/=

4

7 回答 7

36

它们是简写:

a += b

是相同的

a = a + b

ETC...

所以

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

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

于 2012-11-09T12:51:35.503 回答
6

请参阅7.13 Assignment operators规范及其小节。具体而言7.13.2 Compound assignment

通过应用二元运算符重载决议(第 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 只计算一次。

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

于 2012-11-09T12:52:20.307 回答
5
a+=1 means a = a+1
a-=2 means a = a-2
a*=3 means a = a*3
a/=4 means a = a/4
于 2012-11-09T12:52:12.233 回答
4

这些是赋值运算符(简写)

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;

参考:链接

于 2012-11-09T12:52:03.917 回答
2

大致var *operator*= expression意思是var = var *operator* expression。另外,我听说某处有文档。

于 2012-11-09T12:52:03.293 回答
1

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

x = x + 1;

你可以简单地写:

x += 1;

它具有相同的效果。

于 2012-11-09T12:53:51.427 回答
0

这些是速记运算符。
这些在您执行操作并将结果存储到它们之间的变量之一时使用。也就是说,您将结果存储到您的操作数之一中,假设示例
1)x=x+y;
在这里你可以做 x+=y;
例如 2) x=x+1;
在这里你可以做 x+=1;

于 2012-11-09T12:51:45.603 回答