У меня проблема с анонимным методом внутри цикла.
Следующий код предназначен только для иллюстрации моей проблемы:
private void Form1_Load(object sender, EventArgs e)
{
List<string> bassists = new List<string>(){
"Jaco Pastorius",
"Marcus Miller",
"Flea",
"Vicor Wooten"
};
foreach (string item in bassists)
{
this.button1.Click += (s, ea) => Output(s, ea, item);
}
}
private void Output(object s, EventArgs e, string item)
{
this.listBox1.Items.Add(item);
}
И когда я нажимаю кнопку, выводится следующее:
Victor Wooten
Виктор Вутен
Виктор Вутен
Виктор Вутен
вместо:
Хако Пасториус
Маркус Миллер
Блоха
Викор Вутен
Суть моей проблемы - это различный контекст выполнения. Я знаю, что мой пример глуп.