https://www.runoob.com/csharp/csharp-delegate.html
1、 解释:
(1) 委托(Delegate)一种引用类型变量,是对某个方法的引用的。可以看做一个“函数包装”,把函数包装成对象用来传递。
(2) 类似 指向方法的指针,所以引用的方法可在运行时被改变。
(3) 委托(Delegate)用于实现事件和回调方法。
(4) 所有的委托都派生自 System.Delegate 类。
2、 声明委托类型:
委托类型声明决定了可引用的方法类型。此委托类型的实例可指向一个相同类型的方法。例如:
public delegate void printString(string s);
// 实例化委托
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);
4、 委托的多播:
一个委托可以调用多个方法,这被称为委托的多播(multicasting),也叫组播。
"+" 运算符合并委托。一个委托调用它所合并的多个委托。只有相同类型的委托可被合并。
"-" 运算符可用于从合并的委托中移除组件委托。