雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

多播委托方法的增加和移除

2024-10-15 15

什么是多播委托?

委托都是继承自多播委托MulticastDelegate,一个委托包含多个方法称之为多播委托。

+=给委托示例增加方法,形成方法链,如图所示,多播委托会顺序执行方法。

-= 给委托示例移除方法,从方法链尾部开始匹配,遇到第一个完全吻合的方法就移除且只移除一个,没有的话不会异常。

决定一个方法是否完全匹配,由两个因素决定,第一个是method,第二个是target。

所以如果是method += new DelegateTest().ShowName;增加的方法也无法通过method -= new DelegateTest().ShowName;移除,因为他们的对象Target不是同一个。

lambda表达式无法移除,method不同,不同的lambda表达式会被编译器生成不同的方法。

更新于:3天前
赞一波!

文章评论

评论问答