委托使用的四个步骤:
1、定义一个委托(须指明委托所要绑定的函数的类型和参数)
例如:public delegate void Make(string name);
此委托只能绑定(暂且说成是绑定吧)到返回值是void 参数只有一个并且参数是string类型的函数
2、定义 相应的函数:
返回值类型和参数都需要一致
举例:定义和上边的委托一致的函数
private static void EnglishGreeting(string name)
{
Console.WriteLine("Morning, " + name);
}
private static void ChineseGreeting(string name)
{
Console.WriteLine("早上好, " + name);
}
3、将委托绑定到相应的函数上
//注意此方法,它接受一个Make类型(即自己定义的委托)的方法作为参数
//注意此方法,它接受一个GreetingDelegate类型的方法作为参数
private static void GreetPeople(string name, Make MakeGreeting)
{
MakeGreeting(name);
}
4,委托的使用(只需调用使用函数(自己定义的委托类型)作为参数的那个函数即可)
static void Main(string[] args)
{
GreetPeople("Jimmy Zhang", EnglishGreeting);
GreetPeople("张子阳", ChineseGreeting);
Console.ReadKey();
}
附上完整代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 class Program
2 {
3 public delegate void Make(string name);
4
5 private static void EnglishGreeting(string name)
6 {
7 Console.WriteLine("Morning, " + name);
8 }
9
10 private static void ChineseGreeting(string name)
11 {
12 Console.WriteLine("早上好, " + name);
13 }
14
15 //注意此方法,它接受一个GreetingDelegate类型的方法作为参数
16 private static void GreetPeople(string name, Make MakeGreeting)
17 {
18 MakeGreeting(name);
19 }
20
21 static void Main(string[] args)
22 {
23 GreetPeople("Jimmy Zhang", EnglishGreeting);
24 GreetPeople("张子阳", ChineseGreeting);
25 Console.ReadKey();
26 }
27 }