你的位置:首页 > ASP.net教程

[ASP.net教程]我悟委托


委托,刚接触时确实很模糊,说不明白吧,似是明白,委托,顾名思义,就是自己要干什么事,不直接干,而是交付给别人干。委托在编程中的定义就是:

在C#中,委托(delegate)是一种引用类型,在其他语言中,与委托最接近的是函数指针,但委托不仅存储对方法入口点的引用,还存储对用于调用方法的对象实例的引用

而在编程中,就是把要执行的事件通过委托来调用别的方法。我觉得可以简单的比喻为中介。好吧,让我们来认识这个“中介”吧!

首先:让中介存在:委托的建立:建立一个委托类型,并声明该委托可以指向的方法的签名(函数原型)

语法:访问修饰符 delegate  返回值类型 委托名(参数类型 参数)      

  eg: delegate void MyDelegate(int a,int b);

然后:目前市面上的中介很多,有售房的,买装饰的,所以得指定中介的工作类型,要干嘛

建立一个委托类的实例,并指向要调用的方法  

eg:MyDelegate md=new MyDelegate(Max); 告诉用户你是寻找最大值的

最后:告诉委托方我已经找人解决了你的问题:利用委托类实例调用所指向的方法:

int c=md(4,5)

 好啦!我们已经大致的解析了一下委托,不过还得仔细琢磨一下它的定义。毕竟“中介”也有自己的制度嘛!

1.是引用类型 2.存储对方法的引用

最后就抛抛重点吧!为什么要委托,没有委托也可以直接调用呀!我以前也是这么想的,大家都不想找中介为什么满大街的“中介”,就是很多事情自己办不到或者自己不方便就找中介呗,委托也如此,比如微软写好的事件不便掉用别的方法呀!一般大型项目更能体现委托的存在性。

其实聊委托,可能有很多东西拿来讲,我也希望能学到更深的东西,So~本文有任何错误,敬请高人赐教!