Freigeben über


Additionsoperatoren – + und +=

Die integrierten numerischen Typen integral und floating-point, der Typ string und die delegate-Typen unterstützen alle die Operatoren + und +=.

Informationen zum arithmetischen Operator + finden Sie in den Abschnitten Unäre Plus- und Minusoperatoren und Additionsoperator + des Artikels Arithmetische Operatoren (C#-Referenz).

Zeichenfolgenverkettung

Wenn ein Operand oder beide Operanden vom Typ String sind, verkettet der +-Operator die Zeichenfolgendarstellungen der Operanden (die Zeichenfolgendarstellung von null is eine leere Zeichenfolge):

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.

Zeichenfolgeninterpolation bietet eine bequemere Möglichkeit, Zeichenfolgen zu formatieren:

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

Sie können die Zeichenfolge-Interpolation verwenden, um eine konstante Zeichenfolge zu initialisieren, wenn alle für Platzhalter verwendeten Ausdrücke ebenfalls konstante Zeichenfolgen sind.

Ab C# 11 führt der +-Operator eine Zeichenfolgenverkettung für UTF-8-Literalzeichenfolgen aus. Dieser Operator verkettet zwei ReadOnlySpan<byte>-Objekte.

Kombinieren von Delegaten

Für Operanden des gleichen Delegattyps gibt der Operator + eine neue Delegatinstanz zurück, die bei Aufruf den linken Operanden und dann den rechten Operanden aufruft. Wenn einer der Operanden nullist, gibt der + Operator den Wert eines anderen Operanden zurück (der auch nullsein kann). Das folgende Beispiel zeigt, wie Delegaten mit dem +-Operator kombiniert werden können:

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

Zum Entfernen von Delegaten verwenden Sie den - Operator.

Weitere Informationen zu Delegattypen finden Sie unter Delegaten.

Additionszuweisungsoperator (+=)

Ein Ausdruck mit dem Operator +=, z.B.

x += y

Ist äquivalent zu:

x = x + y

Außer dass x nur einmal ausgewertet wird.

Im folgenden Beispiel wird die Verwendung des +=-Operators veranschaulicht:

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

Sie verwenden den +=-Operator auch, um eine Ereignishandlermethode anzugeben, wenn Sie ein Ereignis abonnieren. Weitere Informationen finden Sie unter Vorgehensweise: Abonnieren von Ereignissen und Kündigen von Ereignisabonnements.

Überlastbarkeit des Operators

Ein benutzerdefinierter Typ kann den Operator +. Wenn ein binärer +-Operator überladen wird, wird der +=-Operator ebenfalls implizit überladen. Ab C# 14 kann ein benutzerdefinierter Typ den += Operator explizit überladen, um eine effizientere Implementierung bereitzustellen. In der Regel überlastet ein Typ den += Operator, da der Wert direkt aktualisiert werden kann, anstatt eine neue Instanz für das Ergebnis der Ergänzung zuzuweisen. Wenn ein Typ keine explizite Überladung bereitstellt, generiert der Compiler die implizite Überladung.

C#-Sprachspezifikation

Weitere Informationen finden Sie unter C#-Sprachspezifikation in den Abschnitten Unärer Plusoperator und Additionsoperator. Weitere Informationen zum Überladen der Verbundzuordnungsoperatoren in C# 14 und höher finden Sie in der benutzerdefinierten Spezifikation der zusammengesetzten Zuordnungsfunktion .

Weitere Informationen