1.完整的声明
2.简略格式
有委托字段/属性,还需要事件的原因是为了程序的逻辑更加有道理,更加安全,谨防借刀杀人。
所以事件的本质是委托字段的一个包装器,这个包装器对委托字段的访问起限制作用,相当于一个蒙版。封装的一个重要功能就是隐藏。事件对外界隐藏了委托实例的大部分功能,仅暴露添加/移除事件处理器的功能。
用于声明事件的委托类型的命名约定
用于声明Foo事件的委托,一般命名为FooEventHandler.
FooEventHandler委托的参数一般有两个。
第一个是object类型(任意类),名字为sender,实际上就是事件的拥有者、事件的source。
第二个是EventArgs类的派生类,类名一般为FooEventArgs,参数为e。也就是前边讲过的事件参数。
虽然没有官方的说法,但我们可以把委托的参数列表看做是事件发生后发送给事件响应者的事件消息。
触发Foo事件的方法一般命名为OnFoo,即因何引发,事出有因。
访问级别为Protected,不能为public,不然又成为借刀杀人了。
事件的命名约定
带有时态的动词或者动词短语。
事件拥有者正在做什么事情,用进行时;事件拥有者做完了什么事情,用完成时。