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#.