Может кто-нибудь объяснить, как работает следующий код?Как компилятор обрабатывает оператор возврата с помощью оператора postfix?
static int index = 0;
public static int GetNextIndex()
{
return index++;
}
Я предположил, что, поскольку операция приращения происходит после оператора возврата, «индекс» переменного никогда не получит приращение.
Но при тестировании с помощью компилятора C# я заметил, что «индекс» увеличивается.
Как стандартный компилятор справляется с этим сценарием?
Что заставляет вас думать, что приращение происходит после оператора возврата? Приращение происходит после того, как значение индекса было получено, * для использования * в операторе return ... –
Потому что это постфиксный оператор. – Curious
@Fadi Прочтите этот ответ Эрика Липперта, объясняющего механику pre/postfix http://stackoverflow.com/a/3346729/860585 – Rotem