【发布时间】:2011-05-23 12:13:52
【问题描述】:
我对循环中的匿名方法有疑问。
下面的代码只是为了说明我的问题:
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);
}
当我点击按钮时,输出是:
维克多·伍顿
维克多·伍顿
维克多·伍顿
维克多·伍顿
代替:
雅科·帕斯托瑞斯
马库斯·米勒
跳蚤
维科尔伍顿
我的问题的要点是不同的执行上下文。我知道我的例子很愚蠢。
【问题讨论】:
-
Jaco Pastorius、Marcus Miller、Flea 和 Victor Wooten。其中之一与其他不同......
-
4 种不同的风格……但我都喜欢!
标签: c# .net anonymous-methods