Dela via


Tilläggsoperatorer – + och +=

Operatorerna + och += stöds av den inbyggda integrerade och flyttalstyper, strängtypen och delegattyper.

Information om den aritmetiska operatorn + finns i avsnitten Unära plus- och minusoperatorer och Additionsoperatorn + i artikeln Aritmetiska operatorer.

Strängsammanfogning

När en eller båda operanderna är av typen strängsammanfogar + operatorn strängrepresentationerna av dess operander (strängrepresentationen av null är en tom sträng):

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.

Stränginterpolation är ett bekvämare sätt att formatera strängar:

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

Du kan använda stränginterpolation för att initiera en konstant sträng när alla uttryck som används för platshållare också är konstanta strängar.

Från och med C# 11 utför +-operatorn strängsammanfogning för UTF-8-literalsträngar. Den här operatorn sammanfogar två ReadOnlySpan<byte> objekt.

Delegera kombination

För operander av samma delegat typ returnerar operatorn + en ny delegatinstans som, när den anropas, först anropar den vänstra operanden och sedan den högra operanden. Om någon av operanderna är nullreturnerar operatorn + värdet för en annan operand (som också kan vara null). I följande exempel visas hur delegeringar kan kombineras med operatorn +:

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

Om du vill ta bort delegering använder du operatorn -.

Mer information om ombudstyper finns i Ombud.

Additionstilldelningsoperator +=

Ett uttryck med operatorn +=, till exempel

x += y

Motsvarar:

x = x + y

Förutom att x bara utvärderas en gång.

I följande exempel visas användningen av operatorn +=:

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

Du använder också +=-operatorn för att ange en händelsehanterarmetod när du prenumererar på en händelse. Mer information finns i Så här: prenumerera på och avsluta prenumerationen på händelser.

Överlagring av operator

En användardefinierad typ kan överlagra+-operatorn. När en binär + operator är överbelastad är += operatorn också implicit överbelastad. En användardefinierad typ kan inte uttryckligen överbelasta +=-operatorn.

Språkspecifikation för C#

Mer information finns i Unary plus-operatorn och Addition-operatorn avsnitt i C#-språkspecifikationen.

Se även