-
什么是委托
委托是持有一个或多个方法的对象
1 delegate void Mydel(int value); 2 class Program 3 { 4 void PrintLow(int value) 5 { 6 Console.WriteLine("{0}-Low Value", value); 7 } 8 void PrintHigh(int value) 9 { 10 Console.WriteLine("{0}-High Value", value); 11 } 12 void PrintValue(int value) 13 { 14 Console.WriteLine("{0}-my Value", value); 15 } 16 static void Main(string[] args) 17 { 18 Mydel del,del2; 19 Random rand = new Random(); 20 Program pr= new Program(); 21 int randomValue = rand.Next(99); 22 del = randomValue > 50 ? new Mydel(pr.PrintHigh) : new Mydel(pr.PrintLow); 23 del(randomValue); 24 del2 = pr.PrintValue; 25 del2 = del; 26 del2(randomValue); 27 } 28 }
- 代码声明一个委托类型Mydel,Main声明了两个Mydel类型的委托对象的引用del,del2
- 如果随机数大于50,创建 Mydel委托对象并初始化,让它持有PrintHigh方法的引用;随机数小于50,创建 Mydel委托对象并初始化,让它持有PrintLow方法的引用。把这个委托对象赋值给del
- 把 pr.PrintValue的实例方法赋值给del2