问答详情
源自:7-3 事件

这两种注册事件有什么区别

Dog.NewDog+=c1.WantDog

c1.WantDog+=Dog.NewDog

有什么区别啊?

好懵啊?

求解答。

提问者:lrf2019 2019-03-29 23:48

个回答

  • 慕虎4119789
    2019-04-01 20:04:01

    按照原本的事件发生方式,先定义委托,然后定义事件,再判断事件是否触发(即是否发生),最后再执行订阅或取消订阅事件。前面声明了两个客户,然后有Dog.NewDog += c1.WantDog,这里的意思应该是先判断NewDog是否为空,即商店有没有新狗狗,然后在再根据客户的消息WantADog订阅事件。而第二个注册事件是先判断有没有WantDog(但是老师写事件触发条件时候并没有写客户有没有WantDog,而是写的NewDog!=null)。因为按照逻辑是先看有没有新狗,再看有没有客户想要。而这样改变的话,就是看先有没有客户要狗狗,再看有没有新狗了。希望你能理解。。。