委托的-=和+=

用try catch ,测试委托的+=,-=,得到结论如下 :、

1,-=有就减,没有就不减,0.0,不报异常。。

2,如果多播委托,有多个指针指向同一个函数地址,那么-= 从委托的后面开始减,从tail,尾部开始减;+=也是在尾部加;

3,如果委托为空,执行的话,报异常,用A, try,catch可以解决,但似乎影响 效率;B,空值检查  ?.invoke(),单线程可以避免异常,似乎很牛b


 

问题:如何确定一个多播委托中有无某个委托?

委托如果有异常的话,程序会跳出委托链,那么,排在异常委托后的委托,则不能进行,可行办法之一,就是单独执行,用foreach;

 

 

为避免异常的烦人事情,多播委托 的调用,直接获取订阅者的列表,单个调用,较为妥当,除非确定真没有异常;

有返回值的话,用获取列表,单个调用的方式也比较好,但是,问题还是又来了,谁有知道谁是谁呢?

 

事件 event 的修饰,可以在编译上 规范委托,是器封装性更好,而避免滥用。。

 

未完待续;

posted @ 2020-09-03 15:42  兰梦书生  阅读(255)  评论(0)    收藏  举报