前面讲过如何使用算术操作符来创建新值。例如,以下语句使用操作符+来创建比变量answer大42的一个值,新值将写入控制台:


Console.WriteLine(answer + 42);


  前面还讲过如何使用赋值语句来更改一个变量的值。以下语句使用赋值操作符将answer的值变成42:


answer = 42;


  如果希望在一个变量的值上加42,可以将赋值操作符与加法操作符合并到一起。例如,以下语句在answer上加42,并将新值赋给answer。换言之,在运行该语句之后,answer的值将比之前大42:


answer = answer + 42;


  虽然这是一个有效的语句,但有经验的程序员不会这样写。在变量上加一个值是非常普遍的一个操作,所以Microsoft Visual C#专门提供了一个复合赋值操作符+=来简化这个操作。为了在answer上加42,有经验的程序员会这样写:


answer += 42;


  利用这个快捷方式,可以将任何算术操作符与赋值操作符合并到一起,表5.1对此进行了总结。这些操作符统称为复合赋值操作符(compound assignment operator)。


表5.1 复合赋值操作符


错误写法



正确写法


variable = variable * number;

variable *= number;

variable = variable / number;

variable /= number;

variable = variable % number;

variable %= number;

variable = variable + number;

variable += number;

variable = variable - number;

variable -= number;


  提示 复合赋值操作符与简单赋值操作符具有一样的优先级和右结合性。


  操作符+=也可作用于字符串;它能将一个字符串附加到另一个字符串末尾。例如,以下代码将在控制台上显示"Hello John":


string name = "John";

string greeting = "Hello ";

greeting += name;

Console.WriteLine(greeting);


  但是,不能将其他任何复合赋值操作符用在字符串上。


  注意 需要让一个变量递增或递减1时,不要使用复合赋值操作符,而是使用操作符++和--。例如,以下语句的写法是错误的:


count += 1;


  正确写法如下:


count++;