Operatory dodawania — +
i +=
Operatory
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
Zobacz też
- operatory i wyrażenia języka C#
- Jak połączyć wiele ciągów
- wydarzenia
- operatory arytmetyczne
- — oraz -= operatory