.NET绿叶社区!
返回

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

2020-06-05 委托 多播委托 148 1

什么是多播委托?

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

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

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

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

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

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

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

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

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

点赞 收藏

网友点评
  • 匿名用户:sad
    回复
顶部