多播委托
定义
多播委托可以同时调用多个委托,但如果调用的是有返回值的方法,则的能得到最后一个方法的接过,一般我们把多播委托返回值声明为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可在委托的具体类型不可知的情况下用过反射调用委托,很方便,但要慎用,因为对性能有极大影响。在能够确定委托类型的情况还是不要贪图方便使用Delegate的DynamicInvoke为好。
来自博客:https://blog.csdn.net/lijing_hi/article/details/11889149