Нет разницы при написании самостоятельно (как показано) - в обоих случаях myInt будет увеличен на 1.
Но есть разница, когда вы используете его в выражении, например как то так:
MyFunction(++myInt);
MyFunction(myInt++);
В первом случае myInt увеличивается, а новое / увеличенное значение передается MyFunction (). Во втором случае старое значение myInt передается MyFunction () (но myInt по-прежнему увеличивается до вызова функции).
Другой пример:
int myInt = 1;
int a = ++myInt;
// myInt is incremented by one and then assigned to a.
// Both myInt and a are now 2.
int b = myInt++;
// myInt is assigned to b and then incremented by one.
// b is now 2, myInt is now 3
Кстати: как Дон указал в комментарии, те же правила также действительны для операций декремента, и правильная терминология для этих операций:
++i; // pre-increment
i++; // post-increment
--i; // pre-decrement
i--; // post-decrement
Как Джон Скит указывает:
Другие показали, где это делает
разница, и прокомментировали, что как
одно заявление, которое он не делает
разница.
Я бы хотел добавить, что это почти
всегда плохая идея использовать его там, где это
имеет значение. Я подозреваю там
может быть несколько раз, когда это больше
читаемый, чтобы иметь такой код, как:
Console.WriteLine("Foo: {0}", foo++);
чем:
Console.WriteLine("Foo: {0}", foo);
foo++;
... но они очень редкие!
последний из этих двух образцов делает
заказ кристально чистый сразу -
первое требует немного обдумать
(в любом случае, к моему бедному мозгу). Думать о
удобочитаемость в первую очередь.