1.C#委托相当于C/C++中的函数指针。函数指针用指针获取一个函数的入口地址,实现对函数的操作。委托与C/C++中的函数指针不同之处在于,委托是面向对象的,是引用类型,因此对委托的使用要“先定义,后实例化,最后才能调用”
定义委托使用关键字delegate
delegate int SomeDelegate(int nID,string sName);
在实例化 //实例化的参数可以是非静态方法也可以是静态方法
SomeDelegate d1=new SomeDelegate(wr.InstanceMethod);
最后调用
d1(5,"aa");
通过委托SomeDelegate实现对方法InstanceMethod的调用,调用还必须有一个前提条件:方法InstanceMethod有参数且和定义SomeDelegate的参数一致,返回值一致;
public int InstanceMethod(int nID,string sName)
2.多播
相对于上面的一次委托只调用一个方法,一次委托也可以调用多个方法,这成为多播。一般是通过“+”和“-”运算符实现的。