事件args分配

Mir*_*roo 3 c# event-handling mouseevent eventargs

我有这个事件处理程序

Temp.MouseLeftButtonDown += new MouseButtonEventHandler(Temp_MouseLeftButtonDown);

但我想发送一些参数来访问Temp_MouseLeftButtonDown函数.我怎么能分配它?

Jon*_*eet 5

你不能直接这样做,因为事件处理程序只能期望与MouseButtonEventHandler的兼容签名.

如果您使用的是C#3,最简单的方法是使用lambda表达式 - 类似于:

Temp.MouseLeftButtonDown +=
   (sender, args) => Temp_MouseLeftButtonDown(sender, args, "extra argument");
Run Code Online (Sandbox Code Playgroud)

这有帮助吗?当然,如果您不需要发送方和事件参数,则不必提供它们.

在C#2中,您可以以相同的方式使用匿名方法.