Tengo un problema con un método anónimo dentro de un bucle.Problema con diferente "contexto de ejecución" de un método anónimo dentro de un bucle
El código siguiente es sólo para ilustrar mi problema:
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);
}
Y cuando hago clic en el botón, la salida es:
Victor Wooten
Victor Wooten
Victor Wooten
Victor Wooten
en lugar de:
Jaco Pastorius
Marcus Miller
Pulga
Vicor Wooten
El punto principal de mi problema es el contexto de ejecución de los differents. Sé que mi ejemplo es estúpido.
Jaco Pastorius, Marcus Miller, Flea y Victor Wooten. Uno de estos no es como los otros ... – jason
4 estilos diferentes ... ¡pero me gustan todos! – Florian