从这个答案https://stackoverflow.com/a/6457528/299110
我正在使用ctrl.PreRender += (sender, e) => ControlPreRender(ctrl, rule);
a 中的一个或多个控件foreach
,并且 ctrl 和 rule 的值每次都在变化。
但是,当ControlPreRender
调用该方法时,该rule
参数似乎与事件处理程序附加到的发送方不一致。
我知道我在这里遗漏了一些东西,但不确定是什么!
更新:感谢您的回答,Eric Lippert 的博客确实解释了这一点。正如投反对票的人所建议的那样,我在下面放了更多代码,希望能稍微改进一下这个问题:
foreach (var ctrl in controls)
{
// ...
foreach (var rule in rules)
{
// ...
ctrl.PreRender += (sender, e) => ControlPreRender(ctrl, rule);
}
}
public static void ControlPreRender(Control ctrl, ControlRule rule)
{
// ...
}