委托

什么是委托?

安全的函数指针

就是一个能存放符合某种格式(方法签名)的方法的指针的清单

委托创建方法

1.  准备一个方法: string HelloU (string name) {   }

2.声明委托:delegate 返回值类型 委托类型名(参数)

                       例子:delegate string DGSayHi  ( string Name );

3.创建委托对象 :DGSayHi dgSay=new  DGSayHi ( HelloU );

或者:  DGSayHi dgSay = HelloU;

4.追加方法: dgSay+=HelloU2;

5.删除方法:dsSay-=HelloU3;

委托调用方式

 dgSay (" binggo"); // 

dgSay.Invoke("binggo");

我们创建了一个方法,内存为这个方法开辟一个空间,  分配给该空间一个编号地址,有个指针指向这个地址,根据这个指针找到内存中的地址,因为委托签名要一致才能调用,从安全角度出发,委托是安全的.

C语言 的指针是不安全的,可以随便生成的 ,一不小心就指向其他系统文件地址

事件

事件是委托的一个特殊实例,私有的委托,,比委托安全,委托说穿就是一个类,在类里定义一个事件,只能在该类下进行调用

 Fun<>委托 调用有返回值

Action<>委托  调用没有返回值

为什么微软要提供这2个委托? 

因为避免重复调用相同签名委托

原文地址:https://www.cnblogs.com/ligtcho/p/6642107.html