Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 .