Udostępnij za pośrednictwem


Operatory dodawania — + i +=

Operatory i są obsługiwane przez wbudowane typy liczb całkowitych i typy liczb zmiennoprzecinkowych, typ ciągu oraz typy delegatów .

Aby uzyskać informacje na temat operatora arytmetycznego +, zobacz sekcje dotyczące operatorów jednoargumentowych , takich jak plus i minus oraz operator dodawania + w artykule o operatorach arytmetycznych .

Konkatenacja ciągów znaków

Gdy jeden lub oba operandy są typu ciąg, operator + łączy reprezentacje ciągów jego operandów (reprezentacja ciągu null jest pustym ciągiem):

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.

interpolacja ciągów zapewnia wygodniejszy sposób formatowania ciągów:

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

Za pomocą interpolacji ciągów można zainicjować ciąg stały, gdy wszystkie wyrażenia używane dla symboli zastępczych są również ciągami stałymi.

Począwszy od języka C# 11, operator + wykonuje łączenie ciągów dla ciągów literałów UTF-8. Ten operator łączy dwa obiekty ReadOnlySpan<byte>.

Kombinacja delegatów

W przypadku operandów tego samego typu delegata operator + zwraca nowe wystąpienie delegata, które po wywołaniu wywołuje operand po lewej stronie, a następnie wywołuje operand po prawej stronie. Jeśli którykolwiek z operandów jest null, operator + zwraca wartość innego operandu (co również może być null). W poniższym przykładzie przedstawiono sposób łączenia delegatów z operatorem +:

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

Aby wykonać usuwanie delegacji, użyj operatora -.

Aby uzyskać więcej informacji na temat typów delegatów, zobacz Delegates.

Operator przypisania dodawania +=

Wyrażenie używające operatora +=, takiego jak

x += y

Jest odpowiednikiem:

x = x + y

Z tą różnicą, że x jest obliczana tylko raz.

W poniższym przykładzie pokazano użycie operatora +=:

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

Operator += służy również do określania metody obsługi zdarzeń podczas subskrybowania zdarzenia . Aby uzyskać więcej informacji, zobacz Jak subskrybować i anulować subskrypcję wydarzeń.

Przeciążenie operatora

Typ zdefiniowany przez użytkownika może przeciążenia operatora +. Gdy operator binarny + jest przeciążony, operator += jest również przeciążony niejawnie. Typ zdefiniowany przez użytkownika nie może jawnie przeciążyć operatora +=.

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz sekcje operatora jednoargumentowego plusa i operatora dodawania w specyfikacji językaC# .

Zobacz też