美文网首页
多播委托

多播委托

作者: 灰灰灰灰灰丶 | 来源:发表于2016-03-03 19:25 被阅读225次

public static void text1()
{
Console.WriteLine("text1");
}
public static void text2()
{
Console.WriteLine("text2");
}
Action a =text1; //Action委托方法a指向了text1这个方法
a+=text2;//添加了text2方法,同时又指向了text2这个方法
//同时指向多个方法的委托叫多播委托
a-=text1;//删除了text1这个方法

//当一个委托没有指向任何方法时会抛异常,解决办法是先判断一下委托方法是否为空
if(a!=null)
a();
//多播委托只能得到调用的最后一个方法的结果。一般把多播委托的返回值设为空(void);如果多播委托里有一个方法抛异常,那么其余方法也不去执行

//得到一个多播委托内的所有方法的委托。可以用GetinvocationList()这个方法去得到多播委托内的所有方法,然后单独调用每一个方法
Delegate[]delegates=a.GetinvocationList();
foreach(Delegate item in delegates)
{
item.DynamicInvoke(多播委托中的方法);
}

相关文章

  • 多播委托与匿名方法、Lambda表达式

    委托可以包含多个方法,这种委托叫做多播委托。 多播委托写法如下: public void Test1(){ Con...

  • 多播委托

    public static void text1(){Console.WriteLine("text1");}pu...

  • Delegate - 高级用法之多播委托

    iOS多播Delegate类——GCDMulticastDelegate用法小结 iOS 多播委托(GCDMult...

  • 24、多播委托

    1. 定义: 让一个委托指向多个方法 1. 给委托增加一个方法 a+= function 2. 给委托去掉一个方...

  • iOS 多播委托

    iOS回调有Delegate,NSNotificationCenter,block,kvo。但是项目中回调 有种情...

  • 多播委托与委托小总结

    多播委托中的方法调用的顺序与增加方法时的顺序是一致的。 多播委托中,如果其中的某个方法执行发生了异常,后面的方法不...

  • C#委托内部实现

    认知尚浅,如有错误,愿闻其详! 我们先看以下的代码,代码中实现了多播委托:静态方法委托: 实例方法委托: PS:多...

  • Multicast Delegates 多播委托

    意义解释:一个委托包含多个方法 A delegate that wraps more than one metho...

  • GCDMulticastDelegate使用(多播委托)

    前言 在iOS开发中我们回调经常使用delegete、blcok、通知等方式。delegete和blcok都是“一...

  • 30号c#总结

    30号 委托与事件,这一节主要分四个部分,委托的理解,接口的成员,多播委托,事件。 委托的定义语,[访问修饰符] ...

网友评论

      本文标题:多播委托

      本文链接:https://www.haomeiwen.com/subject/cqcokttx.html