加法運算子 -
內建 整數 和 浮點 數值類型、 字串 類型和 委派 類型全都支援 + 和 += 運算符。
C# 語言參考資料記錄了 C# 語言最新版本。 同時也包含即將推出語言版本公開預覽功能的初步文件。
文件中標示了語言最近三個版本或目前公開預覽版中首次引入的任何功能。
小提示
欲查詢某功能何時首次在 C# 中引入,請參閱 C# 語言版本歷史的條目。
如需算術 + 運算子的相關資訊,請參閱 一元加號和減號運算子 以及 加法運算子 + 章節的 算術運算子 文章。
字串串連
當運算元中有一個或兩個類型為 字串時,+ 運算符會將運算元的字串表示法串連起來(null 的字串表示法為空字串):
Console.WriteLine("Forgot" + "white space");
Console.WriteLine("Probably the oldest constant: " + Math.PI);
Console.WriteLine(null + "Nothing to add.");
// Output:
// Forgotwhite space
// Probably the oldest constant: 3.14159265358979
// Nothing to add.
字串插值 提供了一種更方便的方式來格式化字串:
Console.WriteLine($"Probably the oldest constant: {Math.PI:F2}");
// Output:
// Probably the oldest constant: 3.14
當所有用於佔位符的表達式也是常數字串時,您可以使用字串插值來初始化常數字串。
運算 + 子對 UTF-8 字面字串執行串接。 這個運算符會串連兩個 ReadOnlySpan<byte> 物件。
委派組合
對於 相同代理 類型的運算元, + 運算元會回傳一個新的代理實例,當被呼叫時,會呼叫左側運算元,接著呼叫右側運算元。 若任一運算元為 null,運算 + 子回傳另一個運算元的值(也可能是 null)。 以下範例展示了如何使用 + 運算子組合代理:
Action a = () => Console.Write("a");
Action b = () => Console.Write("b");
Action ab = a + b;
ab(); // output: ab
要移除代理人,請使用操作員。-
如需委派類型的詳細資訊,請參閱 委派。
加法指派運算子 +=
一個使用運算子的 += 表達式,例如
x += y
相當於:
x = x + y
唯一的不同是 x 只會被評估一次。
下列範例示範 += 運算子的使用方式:
int i = 5;
i += 9;
Console.WriteLine(i);
// Output: 14
string story = "Start. ";
story += "End.";
Console.WriteLine(story);
// Output: Start. End.
Action printer = () => Console.Write("a");
printer(); // output: a
Console.WriteLine();
printer += () => Console.Write("b");
printer(); // output: ab
當您訂閱 +=時,您也可以使用 運算符來指定事件處理程式方法。 如需詳細資訊,請參閱 如何訂閱或取消訂閱事件。
運算子多載性
用戶定義型別可以重載 + 子時,你也會隱含地讓該 += 運算子過載。 從 C# 14 開始,使用者自訂型別可以明確超載運算 += 子,以提供更有效率的實作。 一般而言,型別會重載 += 運算符,因為值可以就地更新,而不是配置新的實例來保存加法的結果。 如果類型未提供明確的多載,編譯程式會產生隱含多載。
C# 語言規格
如需詳細資訊,請參閱 單目正號運算子 一節和 加法運算子 一節,位於 C# 語言規格。 如需 C# 14 和更新版本中有關複合指派運算子多載的詳細資訊,請參閱 使用者定義複合指派 的功能規格。