1、事件
事件是基于委托的存在,是委托的安全包裹,让委托的使用更具有安全性。事件是一种特殊的变量类型
2、事件的使用
声明语法:
访问修饰符 event 委托类型 事件名
事件的使用
(1)事件是作为成员变量存在于类中
(2)委托怎么用,事件就怎么用
事件对于委托的区别:
(1)不能在类外部赋值
虽然不能直接赋值,但是可以且仅可以通过“+=”、“-=”去添加、移除记录的函数
(2)不能在类外部直接调用
注意:它只能作为成员存在于类和接口以及结构体中,不能在成员函数中声明作为临时变量的事件
class Test{ // 委托成员变量,用于存储函数 public Action myFun; // 事件成员变量 public event Action myEvent; public Test() { // 事件使用和委托基本一样 myFun = TestFun; myEvent = TestFun; myEvent += TestFun; myEvent -= TestFun; myEvent.Invoke(); myEvent(); myEvent = null; // 不能声明事件的临时变量 // event Action ae = TestFun; // wrong } public void TestFun() { // Console.WriteLine("TestFun"); } }
3、事件的作用
(1)防止外部随意置空委托
(2)防止外部随意调用委托
(3)事件相当于对委托进行了一次封装,让其更加安全