小编get*_*ing的帖子

foreach中匿名委托的问题

    public Form1()
    {
        InitializeComponent();
        Collection<Test> tests = new Collection<Test>();
        tests.Add(new Test("test1"));
        tests.Add(new Test("test2"));
        foreach (Test test in tests)
        {
            Button button = new Button();
            button.Text = test.name;
            button.Click+=new EventHandler((object obj, EventArgs arg)=>{
                this.CreateTest(test);
            });
            this.flowLayoutPanel1.Controls.Add(button);
        }
    }
    public void CreateTest(Test test)
    {
        MessageBox.Show(test.name);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击按钮女巫文本是'test1'时,消息框将显示'test2',但我的期望是'test1'.那么,有人请告诉我为什么或我的代码有什么问题.

c# foreach delegates

4
推荐指数
1
解决办法
494
查看次数

标签 统计

c# ×1

delegates ×1

foreach ×1