C#简单多播委托

时间:2020-07-02 09:19:13   收藏:0   阅读:56

多播委托

定义

多播委托可以同时调用多个委托,但如果调用的是有返回值的方法,则的能得到最后一个方法的接过,一般我们把多播委托返回值声明为void。

注意:

如果多播委托调用的其中一个方法抛出了异常,整个迭代就会停止。

多播委托可以添加多个相同的委托。

无法添加不同类型的方法,比如int Test1(int i);int Test2(int i1,int i2);同一个多播委托无法同时添加Test1和Test2

如何取得多播委托中所有方法的委托

Action a = Method1;

a+=Method12;

....

 

Delegate[] delegates = a.GetInvocationList();

foreach(Delegate temp in delegates){

temp.DynamicInvoke();

}

遍历多播委托中的所有委托,然后单独调用

DynamicInvoke可在委托的具体类型不可知的情况下用过反射调用委托,很方便,但要慎用,因为对性能有极大影响。在能够确定委托类型的情况还是不要贪图方便使用DelegateDynamicInvoke为好。

来自博客:https://blog.csdn.net/lijing_hi/article/details/11889149

原文:https://www.cnblogs.com/qjns/p/13222625.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!