Operadores de adição - +
e +=
Os +
operadores e são suportados pelos tipos numéricos integral e +=
de vírgula flutuante incorporados, o tipo de cadeia de caracteres e os tipos delegados.
Para obter informações sobre o operador aritmético+
, consulte as seções Unary mais e menos operadores e Operador de adição + do artigo Operadores aritméticos.
Concatenação de cordas
Quando um ou ambos os operandos são do tipo string, o +
operador concatena as representações de string de seus operandos (a representação de string de null
é uma string vazia):
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.
A interpolação de cadeias de caracteres fornece uma maneira mais conveniente de formatar cadeias de caracteres:
Console.WriteLine($"Probably the oldest constant: {Math.PI:F2}");
// Output:
// Probably the oldest constant: 3.14
A partir do C# 10, você pode usar a interpolação de cadeia de caracteres para inicializar uma cadeia de caracteres constante quando todas as expressões usadas para espaços reservados também forem cadeias de caracteres constantes.
A partir do C# 11, o operador executa concatenação +
de cadeias de caracteres para cadeias de caracteres literais UTF-8. Este operador concatena dois ReadOnlySpan<byte>
objetos.
Combinação de delegados
Para operandos do mesmo tipo de delegado , o +
operador retorna uma nova instância de delegado que, quando invocada, invoca o operando esquerdo e, em seguida, invoca o operando direito. Se qualquer um dos operandos for null
, o +
operador retorna o valor de outro operando (que também pode ser null
). O exemplo a seguir mostra como os delegados podem ser combinados com o +
operador:
Action a = () => Console.Write("a");
Action b = () => Console.Write("b");
Action ab = a + b;
ab(); // output: ab
Para executar a remoção do delegado, use o -
operador.
Para obter mais informações sobre tipos de delegados, consulte Delegados.
Operador de atribuição de adição +=
Uma expressão usando o +=
operador, como
x += y
é equivalente a
x = x + y
só que só é x
avaliado uma vez.
O exemplo a seguir demonstra o uso do +=
operador:
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
Você também usa o +=
operador para especificar um método de manipulador de eventos quando se inscreve em um evento. Para obter mais informações, consulte Como assinar e cancelar a assinatura de eventos.
Capacidade de sobrecarga do operador
Um tipo definido pelo usuário pode sobrecarregar o +
operador. Quando um operador binário +
está sobrecarregado, o +=
operador também está implicitamente sobrecarregado. Um tipo definido pelo usuário não pode sobrecarregar explicitamente o +=
operador.
Especificação da linguagem C#
Para obter mais informações, consulte as seções Operador Unary plus e Operador de adição da especificação da linguagem C#.