i++
significa "recupera il valore di i
, quindi incrementalo e restituisce il valore recuperato". Può essere utilizzato nelle espressioni per ottenere un valore e aumentarlo in un colpo solo. Può anche essere usato come una dichiarazione:
i++;
nel qual caso il valore restituito viene scartato. In tal caso è equivalente a i += 1;
Se usato in un ciclo, lo stesso principio è applicato:
for (var i = 0; i < 10; i++)
è equivalente alla scrittura:
for (var i = 0; i < 10; i += 1)
Il primo è più breve (e probabilmente più facile da leggere), quindi è diventato la norma.
C'è comunque un avvertimento nel dire che sono equivalenti. Considera il seguente codice:
var i = 0;
Console.WriteLine(i++);
Console.WriteLine(i += 1);
Console.WriteLine(++i);
L'output è 0
, 2
e 3
mentre il precedente legge e poi incrementa, mentre gli altri due incrementano quindi la lettura.