«ClosureAndForeach» (Решение)
Ответ
В старых версиях компиляторов: 3 3 3
.
В новых версиях компиляторов: 1 2 3
.
Объяснение
В старых версиях компиляторов приведённый код превращался в следующую конструкцию:
Таким образом, все три элемента списка на самом деле являются одним и тем же делегатом, поэтому в консоли мы увидим три одинаковых значения, равных последнему значению i
.
В современных версиях компиляторов произошли изменения, новый вариант кода:
Теперь каждый элемент списка ссылается на собственный делегат, так что все полученные значения будут разными.
Примеры:
Ссылки
Last updated
Was this helpful?