A_02 委托与事件

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

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

委托的作用及场景:

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()
    {
    
    }
 }

 

 

 

 

 

 

  

 

 

 

 

 

 

posted @ 2021-05-08 11:54  旭日阳光/hjw  阅读(56)  评论(0)    收藏  举报