多播委托与委托小总结

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

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

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

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

多播委托与委托小总结_第1张图片

多播委托与委托小总结_第2张图片


委托的不可变性:

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

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

委托的小总结:

1.委托是类型。

2.委托是引用类型。

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

4.委托使用的步骤:

a.定义一个委托;

b.声明一个委托变量;

c.调用委托;

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

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

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

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

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

你可能感兴趣的:(多播委托与委托小总结)