观《深入理解C#》---委托和事件的区别

委托

  1. 委托封装了包含返回类型和一组参数的行为
  2. 委托实例是不易变的(类似string)
  3. 每个委托都包含了一个调用列表

事件

  1. 事件是对委托的封装,是一种特殊的委托,主要用于发布-订阅模式。事件提供了一种机制,使对象可以向其他对象通知发生了某种动作
  2. 事件通常在类内部声明,并通过该类的方法触发。在外部,其他类可以订阅(+=)或取消订阅(-=)这个事件,但不能直接触发它

image

事件跟属性类型,同样可以自定义“订阅”和“取消订阅”的方式,当要注意,自定义后,就无法正常Invoke这个事件了,只能Invoke指定的委托

        private MyDelegate simpleDelegate;       // 声明委托实例
        public event MyDelegate simpleEvent 
        {
            add
            {
                simpleDelegate += value;
            }
            remove
            {
                simpleDelegate -= value;
            }
        }
posted @ 2024-07-10 14:41  陈侠云  阅读(14)  评论(0)    收藏  举报
//雪花飘落效果