1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace 委托_泛型 7 { 8 class Program 9 {10 // 声明委托(无参,无返回值)11 delegate void DG();12 13 static void Main(string[] args)14 {15 // 1.委托调用:SayHelloInChinese()16 DG dg = SayHelloInChinese;17 dg();18 19 // 2.委托调用:SayHelloInEnglish()20 dg = SayHelloInEnglish;21 dg();22 23 Console.WriteLine("\n===================\n");24 25 // 3. Action泛型委托: 无参, 无返回值 26 Action dg1 = SayHelloInChinese;27 dg1();28 29 // 4. Action泛型委托: 带参, 无返回值30 Actiondg2 = SayHelloInEnglish;31 dg2("张三");32 33 Console.WriteLine("\n===================\n");34 35 // 5. Func泛型委托 : 有参 有返回值 36 Func add = Add;37 double result = add(3.0, 4.0);38 Console.WriteLine("result = {0}", result);39 40 41 42 Console.ReadLine();43 }44 45 46 static void SayHelloInChinese()47 {48 Console.WriteLine("你好! ");49 }50 51 static void SayHelloInChinese(string name)52 {53 Console.WriteLine("你好! {0}", name);54 }55 56 static void SayHelloInEnglish()57 {58 Console.WriteLine("Hello! ");59 }60 61 static void SayHelloInEnglish(string name)62 {63 Console.WriteLine("Hello! {0}", name);64 }65 66 static double Add(double a, double b)67 {68 return a + b;69 }70 71 }72 }