C#进阶学习——事件

知识点01:什么是事件

事件是基于委托的存在,事件是委托的安全包裹,事件使得委托变得更具有安全性

完整的事件具有以下五要素:

事件模型

事件拥有者(对象,类)

事件成员——能让对象或类具备通知能力的成员,不会主动发动

事件的响应者——对象

事件处理器——加入到事件中的方法

事件订阅——把事件处理器与事件关联在一起,本事上是委托订阅

知识点02:事件的使用

基本语法访问修饰符 event 委托类型 时间名

事件的使用:1.事件是作为成员变量存在与类中的

                      2.委托怎么使用,事件就怎么使用

注:事件只能作为成员在类和接口以及结构体中,可同步调用也可异步调用

     static void Main(string[] args)
    {
        Test t = new Test();

        t.myEvent += t.TestFun;//可在类的外部进行赋值
        //t.myEvent();错误的,无法在类的外部进行调用
        t.Event_Invoke();//只能通过类内部封装的方法进行在外部调用
    }


class Test
    {

        public Action myfun;
        public event Action myEvent;//委托对应的事件

        public void TestFun()
        {
            Console.WriteLine("Test类里的TestFun方法");
        }
        public void Event_Invoke() 
        {
            myEvent += TestFun;//向事件中添加函数
            myEvent.Invoke();//在类内部进行事件调用
        }
    }

知识点03:委托与事件的区别

1.事件不可以在类外部赋值,但可以在外部添加和移除方法,委托则都可以

2.事件不可以外部调用,若要调用必须在类的内部封装一个方法,然后在外部调用,委托可以直接在外部调用

3.事件不能像委托一样作为临时变量在函数中使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值