C#多路广播委托的一点浅见

C#多路广播委托的一点浅见

 

 

 以上是C#官方对委托的定义与介绍,常规的委托定义比如

delegate void test(string str);

但是这种委托通常是和一个事件绑定,我们需要编写观察者模式的项目时候通常会出现的现象是委托、事件与要调用方法进行一对多的绑定,这时候就需要用到多路广播委托,也就是多播委托。

 

C#对于多播委托的支持的有两种,通过Delegate.Combine和MulticastDelegate.Combine和两种方式进行创建。以下我们主要介绍后者。

 

微软对于MulticastDelegate的介绍很简单,如下。

C#多路广播委托的一点浅见

 

 

它具体的使用方式很简单。

MulticastDelegate.Combine(Event, Event1).DynamicInvoke()

此时我们需要注意的是,传入的两个事件的委托类型必须是同一种委托,不然就会

C#多路广播委托的一点浅见

 

 当DynamicInvoke被执行成功后,方法就会按照先进先出的顺序被触发、执行。

C#多路广播委托的一点浅见

 

 当编译完成后我们会清楚地看到两种方式并无差别。

C#多路广播委托的一点浅见

上一篇:与众不同 windows phone (4) - Launcher(启动器)


下一篇:C#/.Net 部分缩写