event是一种特殊签名格式的delegate,event的定义必须在类内,delegate可以脱离类的存在。
event的引发是通过调用委托实现的,而委托不仅仅用来实现事件的引发。
通过加入event关键字,在编译的时候编译器会自动针对事件生成一个私有的字段(与此事件相关的委托),以及add_xxx和remove_xxx两个访问器方法。
虽然相关的操作通过delegate也能实现,但使用event更多是为了封装,event通常只能被申明的类访问,外部类对event只能使用+=或者-=,调用都不行。
如:
C#中event和delegate的区别
可以直接被赋值,不利于封装。
 
当然在声明的类内,event可以做delegate一切可以做的事情
C#中event和delegate的区别

赋值不会报错。

 

相关文章:

  • 2022-12-23
  • 2021-06-04
  • 2021-09-17
  • 2022-03-02
  • 2021-10-26
  • 2022-12-23
  • 2023-04-03
猜你喜欢
  • 2021-10-31
  • 2021-08-02
  • 2021-06-26
  • 2021-09-17
  • 2021-06-04
相关资源
相似解决方案