Я пытался понять ответ на этот вопрос Почему я получаю неправильные результаты при вызове Func
public static void Main(string[] args)
{
var funcs = new List>();
for(int v=0,i=0;v<3;v++,i++)
{
funcs.Add( new Func(delegate(){return "Hello "+ i++ +" "+v;}) );
}
foreach(var f in funcs)
Console.WriteLine(f());
}
производит
Hello 3 3
Hello 4 3
Hello 5 3
После прочтения объяснения Джона Скита и Эрика Липперта я подумал, что получу
Hello 3 3
Hello 3 3
Hello 3 3
Здесь и v, и i - переменные цикла, а значение i, полученное в тот момент, v равно не почему это ?. Я не понимаю этого поведения.