Возможный дубликат:
Объяснение постинкремента в C#< /а>
Рассмотрим следующий код C#:
int i = 2;
i = i++;
Console.WriteLine(i);
Я получаю вывод как 2
. Почему нет эффекта i = i++
?
Возможный дубликат:
Объяснение постинкремента в C#< /а>
Рассмотрим следующий код C#:
int i = 2;
i = i++;
Console.WriteLine(i);
Я получаю вывод как 2
. Почему нет эффекта i = i++
?
В зависимости от того, где вы разместили +
-операторы, присвоенное значение увеличивается до или после:
i = ++i;
Таким образом, i
подсчитывается перед назначением.
i = i++;
Таким образом, i
подсчитывается после присвоения.
Потому что оператор =
имеет приоритет первым.
MSDN: Приоритет и ассоциативность операторов.
Попробуй это:
int i = 2;
i = ++i; // or write just ++i;
Console.WriteLine(i);