事件是基于委托的存在,事件是委托的安全包裹,事件可以让委托的使用更具有安全性,事件是一种特殊的变量类型。事件是类或对象向其他类或对象通知发生的一种特殊签名的委托。它的本意是对委托的封装,它在外部只能被订阅或取消订阅,但是不能发布。只能通过内部的公开方法,在方法内部触发事件,这样可以使得程序更加的安全。
关于事件的使用:
申明语法:
访问修饰符 event 委托类型 事件名;
事件的使用:
事件是作为成员变量存在于类中,委托怎么用事件就怎么用。
事件相对于委托的区别:
不能在类外部赋值,不能再头外部调用
要注意的是,它只能作为成员存在于类和接口以及结构体中。
如果我们经常希望某个事件发生了以后,就做某种处理, 比如,收到网络事件后做响应的处理。这个时候,我们可以定义一个委托变量,将有事件发生后要处理的函数对象都保存进去, 当有事件发生的时候,触发这个委托,这样,之前的那些函数都会被调用到。
事件和委托的区别:
事件和委托的使用基本是一模一样的;事件就是特殊的委托。
两者最基本的区别是,前者适合那些需要带返回值的委托,后者适合那些不带返回值的委托。Func 所引用的方法接收一个或者多个入参并带有一个返回值,Action所引用的方法接收一个或者多个参数并且没有返回值,换句话说,你的委托所引用的方法没有返回值,这时候适合用 Action。
主要区别:
1.事件不能再外部使用赋值=符号,只能使用+、-,委托哪里都能用。
2.事件不能再外部执行 委托哪里都能执行。
3.事件不能作为函数中的临时变量的委托可以。