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 Action<string>dg2 = SayHelloInEnglish;
31 dg2("张三");
32
33 Console.WriteLine("\n===================\n");
34
35 // 5. Func泛型委托 : 有参 有返回值
36 Func<double, double, double> 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 }
![]()