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