在 C# 中,若要在變數原值基礎上進行運算並更新,常見寫法為:
answer = answer + 42;
為簡化此類高頻操作,C# 提供復合指派運算子,將算術運算子與指派合二為一:
answer += 42;
| 傳統寫法 | 復合指派寫法 |
|---|---|
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; |
這些運算子優先級與右結合性等同於簡單指派運算子 =。
+= 亦可用於字串串接:
string name = "John";
string greeting = "Hello ";
greeting += name; // 結果:"Hello John"
Console.WriteLine(greeting);
其他復合指派運算子(如 -=、*=)不支援字串操作。
當運算值為 1 時,請使用 ++ / -- 而非復合指派:
// 不建議
count += 1;
// 建議
count++;
這不僅更符合慣例,也能讓編譯器產生最佳化機器碼。