Operatory dodawania — +
i +=
Operatory +
i +=
są obsługiwane przez wbudowane typy liczb całkowitych i zmiennoprzecinkowych , typ ciągu i typy delegatów .
Aby uzyskać informacje na temat operatora arytmetycznego, zobacz artykuł Operatory jednoargumentowe plus i minus oraz Operator dodawania +sekcje operatorów arytmetycznych.+
Ciągów
Gdy jeden lub oba operandy są ciągiem typu, +
operator łączy reprezentacje ciągów jego operandów (reprezentacja null
ciągu 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
Począwszy od języka C# 10, można użyć interpolacji ciągów, aby 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 ReadOnlySpan<byte>
obiekty.
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 to null
, +
operator zwraca wartość innego operandu (co również może być null
). W poniższym przykładzie pokazano, jak można łączyć delegaty z operatorem +
:
Action a = () => Console.Write("a");
Action b = () => Console.Write("b");
Action ab = a + b;
ab(); // output: ab
Aby wykonać usuwanie delegata -
, użyj operatora .
Aby uzyskać więcej informacji na temat typów delegatów, zobacz Delegaty.
Operator przypisania dodawania +=
Wyrażenie używające +=
operatora, na przykład
x += y
jest równoważny
x = x + y
z wyjątkiem tego, że x
jest obliczany 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 Instrukcje: subskrybowanie i anulowanie subskrypcji zdarzeń.
Przeciążenie operatora
Typ zdefiniowany przez użytkownika może przeciążyć +
operatora. Gdy operator binarny +
jest przeciążony, +=
operator jest również niejawnie przeciążony. Typ zdefiniowany przez użytkownika nie może jawnie przeciążyć +=
operatora.
specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz sekcje Operator jednoargumentowy plus i Operator dodawaniaspecyfikacji języka C#.