Udostępnij za pośrednictwem


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#.

Zobacz też