CSharp之委托及原理

什么是委托

就是一个能存放很多方法的指针的调用清单(但方法签名必须和委托类型签名一样),你一调用这个清单,那么清单里的所有的指针所对应的方法就会依次被执行,注意是很多方法。

委托的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//委托的声明
public delegate void SampleDele(string str);
//定义与委托签名相同的三个方法
public static void dele1(string str)
{
Console.WriteLine("dele1:" + str);
}
public static void dele2(string str)
{
Console.WriteLine("dele2:" + str);
}
public static void dele3(string str)
{
Console.WriteLine("dele3:" + str);
}
//
static void Main(string[] args)
{
SampleDele dele = new SampleDele(dele1);
dele += dele2;
dele += dele3;
dele.Invoke("arg");
}

运行结果如下图所示
images