C#中,对委托和事件的理解

委托:
    1、委托即函数指针,类型安全的函数指针(c中则无该限制)
    2、委托可看作是某一类型的方法签名,此类型仅对返回值和方法参数而言。即:方法的参数形式、顺序、个数和返回类型相同,而不论其static/instance,public/private/internal/...,即可定义为某一类型的委托(被委托所调用),委托即委托实例,因此不存在static,在其声明中
    3、委托继承结构:delegate <--System.MulticastDelegate <--System.Delegate。当为多播委托时,则委托类型必然为void的(因为根本不知道各个委托方法的返回类型)
    4、多播委托中的方法是按顺序(FIFO)被调用的,故各方法间最好无依赖关系.

事件:
    1、事件依赖于委托,它将其事件处理程序注册给委托。
    2、事件可关联多个委托(同一类型的实例),这些委托无执行的先后顺序,当然,事件处理程序也是void类型的。
   
posted @ 2006-06-25 11:38  FallingAutumn  阅读(564)  评论(0编辑  收藏  举报