Operadores de suma: +
y +=
Los operadores +
y +=
son compatibles con los tipos numéricos enteros y de punto flotante, el tipo string y los tipos delegados.
Para obtener información acerca del operador aritmético +
, consulte las secciones correspondientes a los operadores unarios más y menos y al operador de suma + del artículo Operadores aritméticos.
Concatenación de cadenas
Cuando uno o ambos operandos son de tipo string, el operador +
concatena las representaciones de cadena de sus operandos (la representación de cadena de null
es una cadena vacía):
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.
La interpolación de cadenas proporciona una manera más práctica de dar formato a las cadenas:
Console.WriteLine($"Probably the oldest constant: {Math.PI:F2}");
// Output:
// Probably the oldest constant: 3.14
A partir de C# 10, se puede utilizar la interpolación de cadenas para inicializar una cadena constante cuando todas las expresiones utilizadas para los marcadores de posición son también cadenas constantes.
A partir de C# 11, el operador +
realiza la concatenación de cadenas para cadenas literales UTF-8. Este operador concatena dos objetos ReadOnlySpan<byte>
.
Combinación de delegados
Para los operandos del mismo tipo de delegado, el operador +
devuelve una nueva instancia de delegado que, cuando se invoca, invoca el operando de la izquierda y luego invoca el operando de la derecha. Si alguno de los operandos es null
, el operador +
devuelve el valor del otro operando (que también podría ser null
). El ejemplo siguiente muestra cómo los delegados se pueden combinar con el operador +
:
Action a = () => Console.Write("a");
Action b = () => Console.Write("b");
Action ab = a + b;
ab(); // output: ab
Para llevar a cabo la eliminación de delegados, utilice el operador -
.
Para más información sobre los tipos de delegado, vea Delegados.
Operador de asignación y suma +=
Una expresión que usa el operador +=
, como
x += y
es equivalente a
x = x + y
salvo que x
solo se evalúa una vez.
En el siguiente ejemplo se muestra el uso del 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
También usa el operador +=
para especificar un método de controlador de eventos cuando se suscribe a un evento. Para obtener más información, vea Procedimientos para suscribir y cancelar la suscripción a eventos.
Posibilidad de sobrecarga del operador
Un tipo definido por el usuario puede sobrecargar el operador +
. Cuando se sobrecarga un operador +
binario, el operador +=
también se sobrecarga de modo implícito. Un tipo definido por el usuario no puede sobrecargar de forma explícita el operador +=
.
Especificación del lenguaje C#
Para más información, consulte las secciones Operador unario más y Operador de suma de la especificación del lenguaje C#.