事件的本质是委托字段的一个包装器
1.这个包装器对委托字段的访问起限制作用,相当于一个 蒙版。
2.封装(encapsulation)的一个重要功能就是隐藏
3.事件对外界隐藏了委托实例的大部分功能,仅暴露添加、移除事件处理器的功能
用于声明事件的委托类型的命名约定:
用于声明FOO事件的委托,一般命名为FooEventHandler(除非是一个非常通用的事件约束)
FooEventHandler委托的参数一般有两个
1、第一个是object类型,名字为sender,实际上就是事件的拥有者、事件的source.
2、第二个是EventArgs类的派生类,类名一般为FooEventArgs,参数名为e,也就是前面讲过的事件参数。
3、我们可以把委托的参数列表看做是事件发生后发送给事件响应者的“事件消息”。
触发Foo事件的方法一般命名为OnFoo,级“因何引发“、”事出有因“
访问级别为protected,不能为public,不然又成了可以“借刀杀人”。
事件的命名约定:
1.带有时态的动词或者动词短语
2。事件拥有者"正在做"什么事情,用进行时,事件拥有者做完了声明事情,用完成时。