Операторы добавления — +
и +=
Операторы +
и +=
поддерживаются встроенными целочисленными типами и типами с плавающей запятой , типом строки и типами делегатов .
Сведения об арифметическом операторе +
см. в разделах Арифметических операторов плюса и минуса и операторов сложения + разделах арифметических операторов.
Объединение строк
Если один или оба операнда имеют тип строкового , оператор +
объединяет строковые версии своих операндов (строковое представление 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
Интерполяция строк позволяет инициализировать константную строку, если все выражения, используемые для заполнителей, также являются константными строками.
Начиная с C# 11 оператор +
выполняет объединение строк для строк 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#
Дополнительные сведения см. в разделах