委托的学习笔记

来源:互联网 发布:oracle数据库基础知识 编辑:程序博客网 时间:2024/05/13 21:42

委托:委托是一种特殊的对象类型,不同于以往包含数据的类型,当要把方法a传送给方法b的时候,需要将方法a的方法细节封装到委托       中,而委托只包含了这个方法的地址,类似于C++中指针概念。

定义委托:delegate void method()  与定义正常使用的方法相同,只是添加了关键字delegate,但是他没有方法体;

              1. 定义一个委托后可以将静态的或者正常的方法指定给他,只要这些指定方法的的签名匹配委托的定义就行。

多播委托:委托包含多个方法,使用+=对委托的方法进行添加,使用-=对委托的方法进行删除,使用时不能依赖定义时添加的顺序,如果           多个方法中的某个方法发生了错误,那么将停止执行。

 

听微软视频笔记

 

 委托是函数份额封装,他代表一类的函数,他们都符合一定的签名:拥有相同的参数类表和返回值类型。同时,

 委托也可以看成对函数的抽象没事函数的“类”,此时,委托的实例将代表一个具体的函数

 

为什么使用委 托:1.更加灵活的方法调用

                        2.用于异步回调

                        3.在多线程编程中使用委托来指定启动一个线程时调用的方法

                        4.C#中的事件模型。用他们指明处理给定事件的方法

 

 1.异步回调:由于实例化委托是一个对象,所以可以将其座位参数进行传递,也可以将其赋值给属性,这样,

                   方法便可以将委托作为参数来接受,并且以后可以调用该委托。这称为异步回调,是在较长的进程

                   完成后用来通知调用方的常用方法。以这种方式使用委托时,使用委托的代码无需了解有关所用方法

                   的实现方面的任何信息

何时使用委托 何时使用借口

委托:1.当使用事件设计模式时。

         2.当封装静态方法可取时。

         3.当调用方不需要访问实现该方法的对象中的其他属性、方法、或接口时

         4.需要方便组合。

         5.当类可能需要该方法的多个实现时

借口:1.当存在一组可能被调用的相关方法时。

         2.当类只需要方法的单个实现时。

         3.当使用借口的类想要将该几口强制转换为其他的接口或类类型时。

 

多播委托:引用多个方法的委托,他连续调用每个方法。委托必须是同类型的,返回类型必须是void,

               不能带输出参数(可以带引用参数)。多播委托应用于事件模型中。

 

 

原创粉丝点击