美文网首页
多播委托与委托小总结

多播委托与委托小总结

作者: 风信子up | 来源:发表于2016-12-23 15:33 被阅读60次

多播委托中的方法调用的顺序与增加方法时的顺序是一致的。

多播委托中,如果其中的某个方法执行发生了异常,后面的方法不再执行。

使用多播委托时,如果不是用+=而是直接使用==,赋值会将前面绑定的所有其他方法(委托)都覆盖掉。

通过GetInvocationList()方法可以获取到多播委托中的每个委托对象,虽然看起来是一个委托对象,其实是一个委托数组。

委托的不可变性:

a.委托具有类似于String一样的不可变性。

b.建议使用委托的时候尽量少定义自己的委托。使用系统中已经有的委托,减少程序集中定义的类型个数。

委托的小总结:

1.委托是类型。

2.委托是引用类型。

3.使用委托的时候必须new 一个委托对象,即便看到的代码没有new委托对象,编辑器也会在编译的时候帮我们new,赋值给委托的方法,其实是存储在委托的对象中的。

4.委托使用的步骤:

a.定义一个委托;

b.声明一个委托变量;

c.调用委托;

5.什么情况下用委托?委托用什么作用?

简要的说就一句话“在代码中动态嵌入一个方法”。

当一个类型中需要嵌入一段代码,但是这段代码有不确定性,是根据使用这个类型的用户来确定其代码的,这种情况下就可以在该类型中,使用一个委托,保证在某种情况下会调用该委托,这时,用户将对应的方法传递给改委托,则就会调用这个方法。

自定义控件的时候会大量的使用委托(写事件的时候会用到委托)。

可以把静态方法或私有方法赋值给委托变量,赋值后,只要能使用到改委托变量的地方就能使用该方法,打破了访问修饰符的限制。

相关文章

  • 多播委托与委托小总结

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

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

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

  • 多播委托

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

  • 30号c#总结

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

  • C#委托内部实现

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

  • 24、多播委托

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

  • iOS 多播委托

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

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

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

  • [iOS 知识总结五] 多播委托

    需求场景 假如说一个页面中有 5 个 Label ( A , B , C ,D ,E),页面初始化的时候要发一个请...

  • Multicast Delegates 多播委托

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

网友评论

      本文标题:多播委托与委托小总结

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