匿名方法通常用来给事件添加处理器,这与委托是非常相似的,实际上匿名方法的定义也是通过delegate关键字完成的,也就是说delegate不仅可以定义委托类型的变量,还可以定义匿名方法。
使用匿名方法的好处是使代码更加简洁, 不用像使用委托那样复杂,直接将匿名方法赋值给事件就可以了。如:
MyTimer.Elapsed+=delegate(…){…};
使用委托:
Public delegatevoid MyEventHandler(object sender,EventArgs e); //定义一个委托
Public voidShowMessage(object sender,EventArgs e) //事件响应函数
{
MessageBox.Show(“…”);
}
Btn.Click+=newMyEventHandler(ShowMessage); //为事件指定处理器
使用匿名函数:
Btn.Click+=delegate(objectsender,EventArgs e)
{
MessageBox.Show(“…”);
}