委托中的多播
委托是可以同时执行多个委托方法,设想一下你在完成一项业务功能时反复的在调用相托的一个委托,这时一件多么繁琐的事情,C#中的委托支持把这些委托合并起来调用一次即可这就称为多播委托,多播支持委托中的方法的任意添加和删减(+和-),为什么它可以做到呢?因为多播委托是一个派生于System.MulticastDelegate的类,它派生于基类
System.Delegate。System.MulticastDelegate的其它成员允许把多个方法调用链接在一起,成为一个列表。
Dome:
class Program
{
public delegate void MultGate();
static void Main(string[] args)
{
#region多播
MultGate gate = CallMiss;
gate += ResponesMaster;
gate += SheComing;
gate();//结果如下
//把小姐找来
//好的主人
//小姐来了
//下面删去第一个委托方法
gate -= CallMiss;
gate();//结果如下
//好的主人
//小姐来了
#endregion
Console.ReadLine();
}
static void CallMiss()
{
Console.WriteLine("把小姐找来");
}
static void ResponesMaster()
{
Console.WriteLine("好的主人");
}
static void SheComing()
{
Console.WriteLine("小姐来了");
}
}