Login
Где найти старый компилятор для C# 4.0
821 просмотров
Перейти к просмотру всей ветки
in Antwort AlexNek 16.03.19 12:00
Что то я вас не пониманию. Где тут ссылки? closure.i = i; Для меня это как бы indirect usage https://paiza.io/projects/62VDITV6xh1IxfbdmnGF2g?language=csharp
Хм. Где в вашем коде использование closure? То что вы свой класс так назвали ничего не значит. Вернитесь к примеру с лямбдами.
как раз наоборот. Изменили поведение foreach. Closure теперь определяется не снаружи цикла, а внутри.
Я имел в виду следующее:
int i = 10; for(;i<20;i++){...} // можно int j = 0; foreach(j in ...) {...} // нельзя // ^ - должна быть новая переменная
Сорри, это тоже что то не понимаю. Ни раньше ни сейчас в foreach нельзя самому менять переменную цикла. Иначе сам принцип изменится.
Почему это? в начале каждой итерации переменной присваивается значение из списка. Но что мешает мне в блоке foreach менять значение этой переменной? Код на яве: https://paiza.io/projects/e/W6I0zp-bwEBXCWdBekivdA
int[] values = new int[]{1,2,4,8}; for(int i : values){ i = i+1; // в шарпе нельзя System.out.println(i); }
Выдаст 2,3,5,9