Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Tilläggsoperatorer –
De inbyggda numeriska typerna heltal och flyttals, strängtypen och delegattyperna stöder alla + och +=-operatorerna.
C#-språkreferensen dokumenterar den senaste versionen av C#-språket. Den innehåller även inledande dokumentation för funktioner i offentliga förhandsversioner för den kommande språkversionen.
Dokumentationen identifierar alla funktioner som först introducerades i de tre senaste versionerna av språket eller i aktuella offentliga förhandsversioner.
Tips/Råd
Information om när en funktion först introducerades i C# finns i artikeln om språkversionshistoriken för C#.
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.
Operatorn + utför strängsammanfogning för UTF-8-literalsträngar. Den här operatorn sammanfogar två ReadOnlySpan<byte> objekt.
Delegera kombination
För operander av samma delegattyp returnerar operatorn + en ny delegatinstans som anropar den vänstra operanden och sedan anropar den högra operanden. Om någon av operanderna är nullreturnerar operatorn + värdet för den andra operanden (som också kan vara null). I följande exempel visas hur ombud 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 ett ombud använder du operatorn-.
Mer information om ombudstyper finns i Ombud.
Additionstilldelningsoperator +=
Ett uttryck som använder 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 du överbelastar en binär + operator överbelastar du även operatorn += implicit. Från och med C# 14 kan en användardefinierad typ uttryckligen överbelasta operatorn += för att ge en effektivare implementering. Vanligtvis överbelastar en typ operatorn += eftersom värdet kan uppdateras på plats, i stället för att allokera en ny instans för att lagra resultatet av tillägget. Om en typ inte ger någon explicit överlagring genererar kompilatorn den implicita överbelastningen.
Språkspecifikation för C#
Mer information finns i Unary plus-operatorn och Addition-operatorn avsnitt i C#-språkspecifikationen. Mer information om överlagring av de sammansatta tilldelningsoperatorerna i C# 14 och senare finns i funktionsspecifikationen för användardefinierade sammansatta tilldelningar .