【c# 学习笔记】委托链的使用
委托链其实就是委托类型,只是委托链把多个委托链接在一起而已,也就是说,我们把链接了多个方法的委托称为委托链或多路广播委托。如下:
public delegate void DelegateTest(); static void Main(string[] args) { //用静态方法来实例化委托 DelegateTest dtstatic = new DelegateTest(Program.method1); DelegateTest dtinstance = new DelegateTest(new Program().method2); //定义一个委托对象,一开始初始化为null,即不代表任何方法。 DelegateTest delegatechain = null; //使用 “+”符号链接委托,链接多个委托后就成为了委托链 delegatechain += dtstatic; delegatechain += dtinstance; //调用委托链 delegatechain(); Console.Read(); } private static void method1() { Console.WriteLine("这是静态方法"); } //实例方法 private void method2() { Console.WriteLine("这是实例方法"); }
从委托链中移除委托
public delegate void DelegateTest(); static void Main(string[] args) { //用静态方法来实例化委托 DelegateTest dtstatic = new DelegateTest(Program.method1); DelegateTest dtinstance = new DelegateTest(new Program().method2); //定义一个委托对象,一开始初始化为null,即不代表任何方法。 DelegateTest delegatechain = null; //使用 “+”符号链接委托,链接多个委托后就成为了委托链 delegatechain += dtstatic; delegatechain += dtinstance; //使用 “-”运算符 移除委托 delegatechain -= dtstatic; //调用委托链 delegatechain(); Console.Read(); } private static void method1() { Console.WriteLine("这是静态方法"); } //实例方法 private void method2() { Console.WriteLine("这是实例方法"); }