我正在尝试遍历所有组件,并且对于那些实现 ISupportsOpen 的人允许打开一个项目。问题是当调用匿名方法时,组件变量始终是相同的元素(来自 IEnumerable 的外部范围)
foreach (ISupportsOpen component in something.Site.Container.Components.OfType<ISupportsOpen>())
{
MyClass m = new MyClass();
m.Called += new EventHandler(delegate(object sender, EventArgs e)
{
if (component.CanOpenProject(..)) component.OpenProject(..);
});
itemsList.Add(m);
}
请问应该怎么解决?