Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Где найти старый компилятор для C# 4.0

16.03.19 14:06
Re: Где найти старый компилятор для C# 4.0
 
MrSanders старожил
в ответ 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

 

Перейти на