首页 > 其他 > 详细

A_02 委托与事件

时间:2021-05-08 16:20:29      阅读:19      评论:0      收藏:0      [点我收藏+]

委托是什么,委托有什么作用

委托是类型,可以将方法作为变量/参数进行传递;

委托的作用及场景:

1、实现类与类、模块与模块之间进行通信交互,场景:如asp.net core中的中间件及管道处理模型;

2、实现代码重用,场景:将公共代码进行封装,而差异代码交由调用方通过委托来传入;

事件是什么,事件有什么作用

事件是一种特殊的委托实例,事件主要是为了针对发布/订阅的应用场景抽象出来的概念,是委托实例集合中的子集;

委托与实践的区别

关键字:delegate(委托)、event(事件),关键字仅仅是关键字,并不代表委托、也不代表事件;

委托与事件的区别解释截图

class Program
 {
     // 定义的一个委托
     public delegate void TestDelegate();   //TestDelegate就叫做委托,此时它还是一个类,并不是实例,可以用它去创造实例

     public event delegate void TestEvent();   //会发现这样写法在编译器检查时是通过不了的,错误的写法

     public event TestDelegate TestEvent2;     //这样的写法是正确的,而TestEvent2就是事件,它其实就是TestDelegate创造出来的实例;
                                               //而event在此处的作用,是对委托做出约束,约束该实例只能由类的内部调用,同时在订阅
                                               //和取消订阅时只能通过+=,-=标识符来操作
     void Main(string[] args)
     {
        TestDelegate testDelegate = new TestDelegate(Fc1);   //委托必须要创建实例才能执行
         testDelegate();                               //委托执行

         TestEvent2();     //事件已经是实例,可以直接执行        
     }

    public void void Fc1()
    {
    
    }
 }

 

 

 

 

 

 

  

 

 

 

 

 

 

A_02 委托与事件

原文:https://www.cnblogs.com/hjwcore/p/14744372.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!