new Thread(() => Console.Write(i)).Start();
Выводит одинаковые цифры несколько раз.
for (int i = 0; i < 10; i++)
{
var temp = i;
new Thread(() => Console.Write(temp)).Start();
}
Выводит уже только разные. Почему?
Замыкание
https://www.google.com/amp/s/pvs-studio.ru/ru/amp/blog/posts/csharp/0468/
А разве в 4.5 или позже не поправили?
Что не поправили?
Мне помнится там с foreach какой-то breaking change был. А так просто есть анализатор, предупреждающий, что замкнутая переменная изменяется во внешнем скоупе
Замыкание
Да, помню где-то изменили поведение. Может и в foreach.
А что в них править, это ж не баг
Обсуждают сегодня