C# 委托加深理解

  之前对委托的理解,一直局限于“委托就类似于C++中强类型的函数指针”。今天听老马跟我一讲,颇有拨云见日之感。

  老马今天对我说,委托,就是定义一个传递方法的规范。

  大家都说委托是一个类型,事件是个字段成员。那么既然委托是个类型,那里面有哪几部分组成来呢?

  一般委托由三部分组成,分别是target,methodPtr和delegateArray。

  target指的是该委托所指向的方法的所有者。若委托指向一个静态方法,例如,string.IsNullOrEmpty(),则target=null,若委托是一个实例方法,比如string s="abc",s.SubString(),则target=s。其目的就是根据不同类型的方法,获取方法所有者的数据。

 

  methodPtr则是该委托所指向的方法,这个就不再多说了。

 

  delegateArray,照我的理解是个委托队列,先进先出,维护着一组由三个部分组成的委托类型变量。即多播委托链

posted @ 2012-10-21 21:18  ζ老豆角  阅读(169)  评论(0编辑  收藏  举报