18
(++i).ToString();
does exactly what you expect.
Your original code will always show 0.
Try this:
(++c).ToString();
This will return 1.
The first form is a prefix increment operation. The result of the operation is the value of the operand after it has been incremented.
The second form is a postfix increment operation. The result of the operation is the value of the operand before it has been incremented.