Operadores de adição – +
e +=
Os operadores +
e +=
são compatíveis com os tipos numéricos internos integrais e ponto flutuante, o tipo cadeia de caracteres e os tipos delegados.
Para obter informações sobre o operador aritmético +
, consulte as seções operadores mais e menos unários e operador de soma + do artigo operadores aritméticos .
Concatenação de cadeia de caracteres
Quando um ou ambos os operandos são do tipo cadeia de caracteres, o operador +
concatena as representações de cadeia de caracteres de seus operandos (a representação de cadeia de caracteres de null
é uma cadeia de caracteres 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.
Interpolação de cadeia 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
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 são cadeias de caracteres constantes.
A partir do C# 11, o operador +
executa a concatenação de cadeia de caracteres para cadeias de caracteres literais UTF-8. Esse operador concatena dois objetos ReadOnlySpan<byte>
.
Combinação de delegados
Para operandos do mesmo tipo delegado, o operador +
retorna uma nova instância de delegado que, quando invocada, chama o operando esquerdo e, em seguida, chama o operando direito. Se qualquer um dos operandos for null
, o operador +
retornará 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 de delegado, use o operador -
.
Para obter mais informações sobre tipos de delegado, consulte Delegados.
Operador de atribuição de adição +=
Uma expressão usando o operador +=
, como
x += y
É equivalente a:
x = x + y
Exceto que x
só é 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 ao assinar um evento . Para obter mais informações, confira Como assinar e cancelar a assinatura de eventos.
Sobrecarga do operador
Um tipo definido pelo usuário pode sobrecarregar o operador +
. Quando um operador de +
binário é sobrecarregado, o operador +=
também é 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, veja as seções Operador de adição unário e Operador de adição da Especificação de linguagem C#.
Consulte também
- Operadores e expressões C#
- Como concatenar várias cadeias de caracteres
- Eventos
- operadores aritméticos
- - and -= operadores