委托----函数指针
委托的声明 public delegate double MyDelegate ( double x );
委托的实例化 MyDelegated d2 = new MyDelegate( obj.myMethod );
委托的调用 委托变量名(参数列表 ) d2(8.9)
1 using System; 2 3 public delegate void Action(); 4 5 class Program 6 { 7 public static void Main(string[] args) 8 { 9 //实例化对象 10 Mom mom = new Mom(); 11 Dad dad = new Dad(); 12 Child child = new Child(); 13 14 //将爸爸和孩子的Eat方法注册到妈妈的Eat事件 15 //订阅妈妈开饭的消息 16 mom.Eat += dad.Eat; 17 mom.Eat += child.Eat; 18 19 //调用妈妈的Cook事件 20 mom.Cook(); 21 22 Console.Write("Press any key to continue . . . "); 23 Console.ReadKey(true); 24 } 25 } 26 27 public class Mom 28 { 29 //定义Eat事件,用于发布吃饭消息 30 public event Action Eat; 31 32 public void Cook() 33 { 34 Console.WriteLine("妈妈 : 饭好了"); 35 //饭好了,发布吃饭消息!!! 36 Eat(); 37 //Eat?.Invoke(); 38 //(Eat).Invoke(); 39 } 40 } 41 42 public class Dad 43 { 44 public void Eat() 45 { 46 //爸爸去吃饭 47 Console.WriteLine("爸爸 : 吃饭了。"); 48 } 49 } 50 51 public class Child 52 { 53 public void Eat() 54 { 55 //熊孩子LOL呢,打完再吃 56 Console.WriteLine("孩子 : 打完这局再吃。"); 57 } 58 }
原文:https://www.cnblogs.com/GoldenEllipsis/p/10349878.html