精神解剖 发表于 2023-4-7 19:03:46

C#委托和事件

1.委托

两大作用:(1)将方法当作参数传递(2)方法的一种多态(多播委托)一个弊端:委托可以使用=,+=,-=来发布订阅,所以这里有一个弊端,它可以使用“=”将所有已经订阅的取消,只保留=后的这一个订阅。这样如果让多个类中写的委托轻易就能被修改,让程序变得不安全,所以为了解决这个弊端,事件event应运而生。多说几句,委托和event的关系就类似于字段与属性的关系,我们都知道为了保护字段不被修改,所以使用属性的get和set去访问该字段而不是直接去给字段赋值。所以同理,event也只能通过add和remove访问器来访问委托,即+=,-=。所以我们可以说事件是委托的包装器。2.事件


如图,我觉得看到这张图就能搞懂事件了。
winform新建一个窗体Form1,它的里面新建一个名为myButton的按钮:
● 事件的拥有者:myButton对象。
● 事件:myButton.Click。
● 事件的响应者:窗体本身。
● 事件处理器:this.myButton_Click方法。
当你新建了一个事件时,这个事件就依此类比。
 
参考《深入浅出WPF》  彻底弄懂C#中delegate、event、EventHandler、Action、Func的使用和区别

来源:https://www.cnblogs.com/qingshanjianke/archive/2023/04/07/17296012.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: C#委托和事件