假设我想在分配事件处理程序时传递一些额外的数据。考虑以下代码:
private void setup(string someData)
{
Object.assignHandler(evHandler);
}
public void evHandler(Object sender)
{
// need someData here!!!
}
我该如何在我的evHandler
方法中使用someData
?
发布于 2010-11-18 22:38:07
private void setup(string someData)
{
Object.assignHandler((sender) => evHandler(sender,someData));
}
public void evHandler(Object sender, string someData)
{
// need someData here!!!
}
发布于 2010-11-18 22:37:30
捕获的变量:
private void setup(string someData)
{
Object.assignHandler((sender,args) => {
evHandler(sender, someData);
});
}
public void evHandler(Object sender, string someData)
{
// use someData here
}
或者(C# 2.0替代):
Object.assignHandler((EventHandler)delegate(object sender,EventArgs args) {
evHandler(sender, someData);
});
发布于 2013-12-19 01:41:01
您可以尝试这样做:
string yourObject;
theClassWithTheEvent.myEvent += (sender, model) =>
{
yourObject = "somthing";
}
https://stackoverflow.com/questions/4215845
复制相似问题