zoukankan      html  css  js  c++  java
  • C#多播委托和事件的区别与关系

    事件是对委托的封装。

    如果一个类里,你把一个委托声明为 public 了,那么外部就可以随意改变委托变量的值,包括清空委托变量等,这样的话就违背了面向对象思想的封装特性;但如果声明为 private ,那就失去了委托的意义(在外部不能给委托添加函数引用)。此时就需要事件了。

    可以把事件看成是委托的实例,事件是对委托的封装,就像类的属性成员一样,事件封装了委托,这样,就可以把委托定义为 private 类型,在外部就可以通过与委托对应的事件来访问委托了,而事件受到限制符“+=”“-=”的影响,不会破坏封装的特性。

    事件的本质就是委托。委托类型用 delegate 修饰,事件类型用 event 修饰。

    另外:委托与事件的关系可以形象的用 字段与属性来进行类比,事件确实可以自定义add()、remove()方法,属性可以自定义get、set
  • 相关阅读:
    外部存储 使用详解
    内部存储 使用详解
    SQLite 使用详解
    SharePerference 使用详解
    Preference 使用详解
    Notification 使用详解
    PopupWindow 使用详解
    Fragment 使用详解
    Dialog 使用详解
    ListView 使用详解
  • 原文地址:https://www.cnblogs.com/fightingtong/p/6439431.html
Copyright © 2011-2022 走看看