Condividi tramite


Operatori di addizione - + e +=

Gli operatori + e += sono supportati dai tipi numerici integrali e a virgola mobile predefiniti, dal tipo stringa e dai tipi delegato.

Per informazioni sull'operatore aritmetico +, vedere le sezioni Operatori più e meno unari e Operatore di addizione + dell'articolo Operatori aritmetici.

Concatenazione di stringhe

Quando uno o entrambi gli operandi sono di tipo string, l'operatore + concatena le rappresentazioni di stringa dei relativi operandi (la rappresentazione di stringa di null è una stringa vuota):

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.

L’interpolazione di stringhe offre un modo più pratico per formattare le stringhe:

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

A partire da C# 10, è possibile usare l'interpolazione di stringhe per inizializzare una stringa costante quando anche tutte le espressioni usate per i segnaposto sono stringhe costanti.

A partire da C# 11, l'operatore + esegue la concatenazione di stringhe per le stringhe letterali UTF-8. Questo operatore concatena due oggetti ReadOnlySpan<byte>.

Combinazione di delegati

Per gli operandi con lo stesso tipo delegato, l'operatore + restituisce una nuova istanza di delegato che, quando viene chiamata, richiama l'operando di sinistra e quindi quello di destra. Se uno degli operandi è null, l'operatore + restituisce il valore di un altro operando, che può essere anch'esso null. L'esempio seguente mostra in che modo è possibile combinare delegati con l'operatore +:

Action a = () => Console.Write("a");
Action b = () => Console.Write("b");
Action ab = a + b;
ab();  // output: ab

Per eseguire la rimozione dei delegati, usare l'operatore -.

Per altre informazioni sui tipi delegate, vedere Delegati.

Operatore di assegnazione di addizione +=

Un'espressione che usa l'operatore +=, ad esempio

x += y

equivale a

x = x + y

con la differenza che x viene valutato una sola volta.

Nell'esempio seguente viene illustrato l'uso dell'operatore +=:

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

È anche possibile usare l'operatore += per specificare un metodo del gestore eventi quando si sottoscrive un evento. Per altre informazioni, vedere Procedura: Sottoscrivere e annullare la sottoscrizione di eventi.

Overload degli operatori

Un tipo definito dall'utente può eseguire l'overload dell'operatore +. Quando viene eseguito l'overload di un operatore + binario, viene eseguito in modo implicito anche l'overload dell'operatore +=. Un tipo definito dall'utente non può eseguire l'overload dell'operatore += in modo esplicito.

Specifiche del linguaggio C#

Per altre informazioni, vedere le sezioni Operatore + unario e Operatore addizione della specifica del linguaggio C#.

Vedi anche