交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。
AzrealKillua 22:03:59
刚刚网上 差了下 看到了个很好的解释
AzrealKillua 22:04:00
事件时你要么订阅该事件,要么取消订阅。
委托的时候怎么样?人家一个=操作,你的方法就不会被执行了。而事件时,你根本无法破坏委托执行时其他被+=(订阅)的代码的执行
AzrealKillua 22:04:41
是不是这么回事啊?
张波老师 22:05:06
舍近求远了..这是从+=操作符的角度来讲的,
张波老师 22:05:19
你如果觉得这样能帮你理解,也很好
AzrealKillua 22:05:51
其实是这样的 就是我想知道以后使用的话是用委托还是事件
AzrealKillua 22:06:03
那我以后就都用事件?
AzrealKillua 22:06:18
省得 还要考虑该用哪个
张波老师 22:06:32
事件体现的是一个对象对外部的"通知",委托是相对静态的,只是"对方法的调用"
张波老师 22:07:17
同时.如果公开委托,则可以由外部来主动调用,
张波老师 22:08:12
如果使用事件,则只能由对象自己"激发事件",不能由外部主动调用,外部只能"注册事件",也就是说,只能监听
AzrealKillua 22:08:58
加了public也不行?
张波老师 22:09:32
用委托,还是事件,你可以根据这一点来区分:是不是由类自己来通知外部,而杜绝外部直接对这个类直接控制.从这个角度上讲,其实还是体现了OO中的"封装性".
张波老师 22:09:46
加public也不行,这是一定的
张波老师 22:10:35
public只是"可访问性",也就是说能不能访问到,不代表能不能"调用"
张波老师 22:11:18
Button.Click事件,你见过btn.Click这种调用方式吗?不能的.
张波老师 22:11:37
btn.Click();这样,也不行,这是方法,不是事件.
张波老师 22:12:19
但如果Click对于Button来说,只是定义为"委托"成员,就可以直接调用btn.Click(参数列表)了..