Ich habe ein Problem mit einer anonymen Methode innerhalb einer Schleife.Problem mit verschiedenen "Ausführungskontext" einer anonymen Methode innerhalb einer Schleife
Der folgende Code ist nur mein Problem zu veranschaulichen:
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);
}
Und wenn ich in die Schaltfläche klicken, wird der Ausgang ist:
Victor Wooten
Victor Wooten
Victor Wooten
Victor Wooten
statt:
Jaco Pastorius
Marcus Miller
Floh
Vicor Wooten
Der Hauptpunkt meines Problems ist die differents Ausführungskontext. Ich weiß, dass mein Beispiel dumm ist.
Jaco Pastorius, Marcus Miller, Floh und Victor Wooten. Eine davon ist nicht wie die anderen .... – jason
4 verschiedene Stile ... aber ich mag sie alle! – Florian