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

Consulte también