事件与委托的关系是什么呢?事件是委托的实例吗?
---------------------------------------------------
事件可以理解成委托的实例吗?1.
委托是一个“类”吗,是一个特殊的类吗,虽然不是用 class 定义,用的是 delegate ,但是它也是一个类,这个理解对吗?2.
既然是类,就要有实例,它的实例是什么呢?我想就是事件,
如果不是事件,那么委托的实例是什么呢?
如果不是事件,那么事件与委托的关系又是什么呢?

解决方案 »

  1.   

    1.非常正确
    typeof(EventHandler).BaseType.Name//结果为:MulticastDelegate
    2.委托的实例和一般的类没区别。只是构造函数稍有不同而已。
    EventHandler eh = new EventHandler(delegate(object s, EventArgs e) { });
      

  2.   

    事件,event只是把委托的定义包装成了属性,提供add和remove方法对委托有特殊操作。
      

  3.   

    event都可以通过delegate来完成。
    event强调了事件。通过订阅事件来获得通知
    delegate则泛指符合某种格式的函数
    看观察着模式
    C# 中的委托和事件
      

  4.   

    2.委托的实例和一般的类没区别。只是构造函数稍有不同而已。
    EventHandler eh = new EventHandler(delegate(object s, EventArgs e) { });
    ------------------------------------------------
    这种语法不明白?
    EventHandler eh = new EventHandler(delegate(object s, EventArgs e) { });红色什么意思?
      

  5.   


    匿名委托。你可以用更通常的做法替代
    public void TestMethod(object s, EventArgs e)
    {
    }
    EventHandler eh = new EventHandler(TestMethod);