最近在看c#高级编程,发现c#把很多东西封装得很深,而且很多乱七八糟的术语,有个地方看得很糊涂:
代码:buttonOne.Click+=new EventHandler(Button_click);如果考虑得简单的话这段代码页可以改成
buttonOne.Click+=Button_click;buttonOne.Click是个委托,EventHandler又是个委托,那EventHandler这个委托的作用是什么,为什么要用它,从代码上看好像是委托还可以使用委托(猜测)。书上这点根本没说明白,请高手指点一下.

解决方案 »

  1.   

    这不就是给 buttonOne 加一个CLICK事件啊。
      

  2.   

    怎么说呢,这是c#语法的问题,可以说编译器支持就行,buttonOne.Click+=new EventHandler(Button_click);等于buttonOne.Click+=Button_click;buttonOne.Click,它会自动应用evnthandler委托。
    另外buttonOne.Click不是委托,是事件。
      

  3.   

    buttonOne.Click:是一个委托对象,类型是EventHandler 或者其子类型。new EventHandler 来构造这个实例,
    Button_click : 是处理方法,当窗体得到buttonOne.Click这个命令的时候 就用此方法处理,作出响应。
      

  4.   

    定义事件语法:[访问修饰符] event 委托名 事件名;public delegate void delegateMe();
    private event delegateMe eventMe;
    eventMe += new  delegateMe(objA.Method);
    eventMe += new  delegateMe(objB.Method);
    将方法绑定到事件上,当事件发生时,执行绑定的方法
      

  5.   

    EventHandler 是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。
    EventHandler 委托
    所有asp.net内置控件事件处理函数的签名都和EventHandler或者继承于它的子类保持一致。
    [SerializableAttribute]
    [ComVisibleAttribute(true)]
    public delegate void EventHandler(
        Object sender,
        EventArgs e
    )
    第一个参数表示引发事件的对象,第二个参数表示引发事件后所要传给处理程序的参数。
      

  6.   

    委托确实改进为事件不更好 少了一些专业术语什么的
    不过委托进化成了 3.0的Lambda表达式了