最近在看c#高级编程,发现c#把很多东西封装得很深,而且很多乱七八糟的术语,有个地方看得很糊涂:
代码:buttonOne.Click+=new EventHandler(Button_click);如果考虑得简单的话这段代码页可以改成
buttonOne.Click+=Button_click;buttonOne.Click是个委托,EventHandler又是个委托,那EventHandler这个委托的作用是什么,为什么要用它,从代码上看好像是委托还可以使用委托(猜测)。书上这点根本没说明白,请高手指点一下.
代码:buttonOne.Click+=new EventHandler(Button_click);如果考虑得简单的话这段代码页可以改成
buttonOne.Click+=Button_click;buttonOne.Click是个委托,EventHandler又是个委托,那EventHandler这个委托的作用是什么,为什么要用它,从代码上看好像是委托还可以使用委托(猜测)。书上这点根本没说明白,请高手指点一下.
另外buttonOne.Click不是委托,是事件。
Button_click : 是处理方法,当窗体得到buttonOne.Click这个命令的时候 就用此方法处理,作出响应。
private event delegateMe eventMe;
eventMe += new delegateMe(objA.Method);
eventMe += new delegateMe(objB.Method);
将方法绑定到事件上,当事件发生时,执行绑定的方法
EventHandler 委托
所有asp.net内置控件事件处理函数的签名都和EventHandler或者继承于它的子类保持一致。
[SerializableAttribute]
[ComVisibleAttribute(true)]
public delegate void EventHandler(
Object sender,
EventArgs e
)
第一个参数表示引发事件的对象,第二个参数表示引发事件后所要传给处理程序的参数。
不过委托进化成了 3.0的Lambda表达式了