简单整理了下委托的最常见应用,代码比较乱
1
using System;
2
/// <summary>
3
/// 简单的委托
4
/// </summary>
5
public class TestDelegate1
6
{
7
public delegate void ProcessDelegate(string str);
8
string strTemp;
9
void Process1(string str)
10
{
11
Console.WriteLine("func1" + str);
12
}
13
void Process2(string str)
14
{
15
Console.WriteLine("func2" + str);
16
}
17
ProcessDelegate d;
18
void Main()
19
{
20
d = new ProcessDelegate(Process1);
21
d("aaa");
22
d = new ProcessDelegate(Process2);
23
d("bbb");
24
}
25
}
26
/// <summary>
27
/// 泛型委托
28
/// </summary>
29
public class TestDelegate2
30
{
31
public delegate string ProcessDelegate<T, S>(T t, S s);
32
string Process1(string s, int i)
33
{
34
return s + i;
35
}
36
string Process2(int s, int i)
37
{
38
return s.ToString() + i.ToString();
39
}
40
void Main()
41
{
42
ProcessDelegate<string, int> d1;
43
ProcessDelegate<int, int> d2;
44
d1 = new ProcessDelegate<string, int>(Process1);
45
d2 = new ProcessDelegate<int, int>(Process2);
46
Console.WriteLine(d1("s", 100));
47
Console.WriteLine(d2(100, 100));
48
}
49
}
50
/// <summary>
51
/// 回调函数
52
/// </summary>
53
public class TestDelegate3
54
{
55
void Main()
56
{
57
fun("aaa", "bbb", Process1);
58
fun("aaa", "bbb", Process2);
59
}
60
public delegate string ProcessDelegate(string str1, string str2);
61
string Process1(string str1, string str2)
62
{
63
return "Process1" + str1 + str2;
64
}
65
string Process2(string str1, string str2)
66
{
67
return "Process2" + str1 + str2;
68
}
69
void fun(string str1, string str2, ProcessDelegate Process)
70
{
71
Console.WriteLine(Process(str1, str2));
72
}
73
}
74
/// <summary>
75
/// 事件委托
76
/// </summary>
77
public class TestDelegate4
78
{
79
void Main()
80
{
81
ProcessEvent += new ProcessDelegate(OnProcessAction);
82
}
83
void OnProcessAction(object sender, EventArgs e)
84
{
85
//do sth on action
86
}
87![](/Images/OutliningIndicators/InBlock.gif)
88
public delegate void ProcessDelegate(object sender, EventArgs e);
89
public event ProcessDelegate ProcessEvent;
90
public void ProcessAction(object sender, EventArgs e)
91
{
92
if (ProcessEvent == null)
93
{
94
ProcessEvent(sender, e);
95
}
96
}
97
}
98
/// <summary>
99
/// 匿名方法
100
/// </summary>
101
public class TestDelegate5 : System.Web.UI.Page
102
{
103
System.Web.UI.WebControls.Button btn = new System.Web.UI.WebControls.Button();
104
void Main()
105
{
106
//无参数
107
this.Load += delegate { Response.Write("this is anonymous method"); };
108
//带参数
109
btn.Click += delegate(object sender, EventArgs e) {
110
((System.Web.UI.WebControls.Button)sender).Text = "Is Clicked";
111
};
112
}
113
}
114![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
26
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
49
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
50
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
73
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
74
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
77
![](/Images/OutliningIndicators/None.gif)
78
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
98
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
101
![](/Images/OutliningIndicators/None.gif)
102
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
112
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
113
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
114
![](/Images/OutliningIndicators/None.gif)