Sdílet prostřednictvím


Operátory sčítání – + a +=

Operátory + a += jsou podporovány vestavěnými číselnými typy integrální a s plovoucí desetinnou čárkou, typem řetězce a typy delegáta .

Pro informace o aritmetickém operátoru + vizte sekce Unární operátory plus a minus a Operátor sčítání + článku Aritmetické operátory.

Zřetězení řetězců

Pokud jeden nebo oba operandy jsou typu řetězec, operátor + zřetězí řetězcové reprezentace operandů (řetězcová reprezentace null je prázdný řetězec):

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.

interpolace řetězců poskytuje pohodlnější způsob formátování řetězců:

Console.WriteLine($"Probably the oldest constant: {Math.PI:F2}");
// Output:
// Probably the oldest constant: 3.14

Interpolaci řetězců můžete použít k inicializaci konstantního řetězce, když všechny výrazy používané pro zástupné symboly jsou také konstantní řetězce.

Počínaje jazykem C# 11 provede operátor + zřetězení řetězců pro literály UTF-8. Tento operátor spojuje dva objekty ReadOnlySpan<byte>.

Kombinace delegátů

Pro operandy stejného typu delegáta vrátí operátor + novou instanci delegáta, která při vyvolání vyvolá levý operand a potom vyvolá pravý operand. Pokud je některý z operandů null, vrátí operátor + hodnotu jiného operandu (což může být také null). Následující příklad ukazuje, jak lze delegáty kombinovat s operátorem +:

Action a = () => Console.Write("a");
Action b = () => Console.Write("b");
Action ab = a + b;
ab();  // output: ab

Chcete-li provést odebrání delegáta, použijte operátor -.

Další informace o typech delegátů naleznete v tématu Delegáti.

Přiřazovací operátor pro součet +=

Výraz používající operátor +=, například

x += y

Je ekvivalentní:

x = x + y

Kromě toho, že x se vyhodnotí jenom jednou.

Následující příklad ukazuje použití operátoru +=:

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

Pomocí operátoru += také určíte metodu obslužné rutiny, když se přihlásíte k odběru události . Další informace najdete v tématu Postupy: přihlášení k odběru a odhlášení odběru událostí.

Přetížení operátoru

Uživatelem definovaný typ může přetížení operátor +. Pokud je binární + operátor přetížen, je operátor += také implicitně přetížen. Uživatelem definovaný typ nemůže explicitně přetížit operátor +=.

Specifikace jazyka C#

Další informace najdete v unární operátor plus a operátor sčítání části specifikace jazyka jazyka C#.

Viz také