Condividi tramite


Operatori di addizione : + e +=

I tipi numerici integrali e a virgola mobile predefiniti, il tipo stringa e i tipi delegati supportano tutti gli + operatori e += .

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

Concatenazione di stringhe

Quando uno o entrambi gli operandi sono di tipo stringa, 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

È possibile usare l'interpolazione di stringhe per inizializzare una stringa costante quando anche tutte le espressioni utilizzate 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 operandi dello stesso tipo di delegato , l'operatore + restituisce una nuova istanza del delegato che, una volta invocata, richiama l'operando di sinistra e successivamente l'operando di destra. Se uno degli operandi è null, l'operatore + restituisce il valore di un altro operando (che potrebbe anche essere null). Nell'esempio seguente viene illustrato come combinare i 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 del delegato, usare l'operatore -.

Per maggiori informazioni sui tipi di delegati, vedere Delegati.

Operatore di assegnazione addizione +=

Espressione che usa l'operatore +=, ad esempio

x += y

Equivale a:

x = x + y

Ad eccezione del fatto che x viene valutato una sola volta.

Nell'esempio seguente viene illustrato l'utilizzo 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

Usi anche l'operatore += per specificare un metodo del gestore di eventi quando ti iscrivi a un evento . Per altre informazioni, vedere Procedura: sottoscrivere e annullare la sottoscrizione agli eventi.

Sovraccarico degli operatori

Un tipo definito dall'utente può sovraccaricare l'operatore +. Quando un operatore binario + è sovraccaricato, l'operatore += è anche sovraccaricato implicitamente. A partire da C# 14, un tipo definito dall'utente può eseguire in modo esplicito l'overload dell'operatore += per fornire un'implementazione più efficiente. In genere, un tipo sovraccarica l'operatore += perché il valore può essere aggiornato direttamente, anziché allocare una nuova istanza per contenere il risultato dell'addizione. Se un tipo non fornisce un overload esplicito, il compilatore genera l'overload implicito.

Specifica del linguaggio C#

Per ulteriori informazioni, vedere le sezioni operatore più unario e operatore di somma della specifica del linguaggio C#. Per altre informazioni sull'overload degli operatori di assegnazione composta in C# 14 e versioni successive, vedere la specifica della funzionalità di assegnazione composta definita dall'utente .

Vedere anche