This article has been localized into Italian by the community.
Operatori di incremento/decremento
Quando si lavora con i valori, in particolare con i tipi numerici, sia avrà spesso bisogno di aggiungere o sottrarre 1. Questo è chiaramente molto semplice da fare: si prende il valore, si aggiunge 1 e lo si riassegna alla variabile originale. Ecco un esempio:
int userAge = 41;
userAge = userAge + 1;
La variabile userAge ora contiene il valore 42 invece di 41. Facile! Lo stesso se si vuole sottrarre 1.
userAge = userAge - 1;
Incremento/decremento suffisso
Tuttavia, C# ha un operatore più breve che si occupa di questo: l'operatore di incremento/decremento. Si tratta semplicemente di due segni più (++) o due segni meno (--), l'uno di seguito all'altro (senza spazi). Ecco il primo esempio riscritto con questo operatore:
int userAge = 41;
userAge++;
Console.WriteLine("Age of user: " + userAge);
Il risultato è esattamente lo stesso, ma vedete come è più corto! E possiamo addirittura accorciarlo, perché questo operatore si può usare all'interno di una dichiarazione esistente:
int userAge = 41;
Console.WriteLine("Age of user: " + userAge++);
Ma aspettate un minuto. Quando lo testiamo, vediamo che userAge è ancora mostrato come 41. Perché? Perché stiamo usando la versione suffisso, che viene valutata DOPO la dichiarazione circostante. In altre parole, la linea è stampata prima che il valore venga incrementato. Questo è il comportamento che si vuole in alcuni casi, ma non è ottimale per questo specifico caso. Ciò di cui abbiamo bisogno è l'operatore di incremento prefisso.
Incremento/decremento prefisso
Questo operatore appare esattamente come la versione suffisso, ma anziché essere posto dopo la variabile, viene posto prima, indicando al compilatore di valutare l'istruzione prima della dichiarazione circostante:
int userAge = 41;
Console.WriteLine("Age of user: " + ++userAge);
Così si avrà l'effetto desiderato, dove userAge viene incrementato prima che la linea venga mostrata. Ora, si può essere confusi dall'avere tre segni più di seguito, ma il primo è per la concatenazione di stringhe, mentre gli ultimi due sono l'operatore vero e proprio. Se si preferisce, si può inserire l'istruzione di incremento tra parentesi per chiarire che è un'unica istruzione:
Console.WriteLine("Age of user: " + (++userAge));
Sta a noi decidere, funziona esattamente allo stesso modo!
E naturalmente, si può usare l'operatore di decremento esattamente allo stesso modo illustrato sopra. Ecco la versione suffisso:
int userAge = 41;
Console.WriteLine("Age of user: " + (userAge--));
E la versione prefisso:
int userAge = 41;
Console.WriteLine("Age of user: " + (--userAge));
Riepilogo
Dunque questi erano gli operatori di incremento e decremento. Sono ottimi per uno specifico caso d'uso: quando si vuole incrementare o decrementare un valore di 1. Nel prossimo capitolo, osserveremo l'operatore di addizione, che somiglia molto a questo, ma ha un utilizzo leggermente più ampio.
Come per altri operatori in C#, questo ricade sotto il termine "sintassi addolcita": la stessa operazione può essere eseguita senza questo specifico operatore, ma usandolo il codice risulta abbreviato. Che diventi più leggibile è molto soggettivo. Ad alcune persone piace, mentre altri sentono che il codice è più leggibile e comprensibile senza. Sta a noi decidere!