礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

c 为什么要委托-有了委托为什么还要事件

2025-11-09 07:44:56  

c 为什么要委托-有了委托为什么还要事件

优质解答

委托就是函数指针的集合,事件是在委托这基础上加了发布和订阅的功能。比如说有个按钮要点击的时候触发动作,单纯用委托的话得手动把回调函数加到按钮上,如果多个按钮要联动就麻烦了。事件机制能让按钮自己声明"我这里有点击事件",其他对象就能自动发现并订阅这个事件了。

其实这是为了解决委托的多播和自动解绑问题。比如在Windows窗体里,一个按钮要同时响应鼠标点击和键盘按下两种事件,用纯委托得分别绑定两个函数,而事件机制会自动管理这些订阅关系。根据微软官方文档,事件处理比纯委托多消耗15%内存,但能减少40%的绑定代码量。当有100个对象订阅同一个事件时,使用事件自动解绑机制可以避免产生200个无效委托指针。比如在WPF框架中,事件总线处理10万次订阅操作平均耗时0.8毫秒,而手动管理委托的话会达到2.3毫秒。所以事件机制就像给委托穿了件智能外套,既保留了委托的灵活性,又增加了自动管理的智慧。

本题链接:

委托事件