Operadores + y += (referencia de C#)+ and += operators (C# reference)

El operador + es compatible con los tipos numéricos integrados, el tipo de cadena y los tipos delegados.The + operator is supported by the built-in numeric types, string type, and delegate types.

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.For information about the arithmetic + operator, see the Unary plus and minus operators and Addition operator + sections of the Arithmetic operators article.

Concatenación de cadenasString concatenation

Cuando uno o ambos operandos son de tipo cadena, el operador + concatena las representaciones de cadena de sus operandos:When one or both operands are of type string, the + operator concatenates the string representations of its operands:

Console.WriteLine("Forgot" + "white space");
Console.WriteLine("Probably the oldest constant: " + Math.PI);
// Output:
// Forgotwhite space
// Probably the oldest constant: 3.14159265358979

A partir de C# 6, la interpolación de cadenas proporciona una manera más conveniente de dar formato a las cadenas:Starting with C# 6, string interpolation provides a more convenient way to format strings:

Console.WriteLine($"Probably the oldest constant: {Math.PI:F2}");
// Output:
// Probably the oldest constant: 3.14

Combinación de delegadosDelegate combination

Para los operandos del mismo tipo de delegado, el operador + devuelve una nueva instancia de delegado que, cuando se invoca, invoca el primer operando y luego invoca el segundo operando.For operands of the same delegate type, the + operator returns a new delegate instance that, when invoked, invokes the first operand and then invokes the second operand. Si alguno de los operandos es null, el operador + devuelve el valor del otro operando (que también podría ser null).If any of the operands is null, the + operator returns the value of another operand (which also might be null). El ejemplo siguiente muestra cómo los delegados se pueden combinar con el operador +:The following example shows how delegates can be combined with the + operator:

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 -.To perform delegate removal, use the - operator.

Para más información sobre los tipos de delegado, vea Delegados.For more information about delegate types, see Delegates.

Operador de asignación y suma +=Addition assignment operator +=

Una expresión que usa el operador +=, comoAn expression using the += operator, such as

x += y

es equivalente ais equivalent to

x = x + y

salvo que x solo se evalúa una vez.except that x is only evaluated once.

En el siguiente ejemplo se muestra el uso del operador +=:The following example demonstrates the usage of the += operator:

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.You also use the += operator to specify an event handler method when you subscribe to an event. Para obtener más información, vea Procedimientos para suscribir y cancelar la suscripción a eventos.For more information, see How to: subscribe to and unsubscribe from events.

Posibilidad de sobrecarga del operadorOperator overloadability

Un tipo definido por el usuario puede sobrecargar el operador +.A user-defined type can overload the + operator. Cuando se sobrecarga un operador + binario, el operador += también se sobrecarga de modo implícito.When a binary + operator is overloaded, the += operator is also implicitly overloaded. Un tipo definido por el usuario no puede sobrecargar de forma explícita el operador +=.A user-defined type cannot explicitly overload the += operator.

Especificación del lenguaje C#C# language specification

Para más información, consulte las secciones Operador unario más y Operador de suma de la especificación del lenguaje C#.For more information, see the Unary plus operator and Addition operator sections of the C# language specification.

Vea tambiénSee also