C#中关于事件的讲解

本文详细介绍了C#中的事件,包括事件的概念、重要事项、源代码组件、声明与订阅事件、触发事件以及标准事件模式。事件是发布者提供通知的方式,由发布者声明,订阅者订阅并注册事件处理程序。在.NET框架中,EventHandler委托类型是标准事件模式。文章通过实例解释了事件的声明、订阅、触发以及如何传递参数。
摘要由CSDN通过智能技术生成

1:什么是事件?

在文档是这样定义的,事件就是一种使对象或者类能够提供通知的的成员,就是对象或者类具备了通知的能力。(闹钟响了给起床了这个事件告诉我们 谁通知了这个事件(闹钟)通知了谁(我)闹钟响了我该干什么(起床))

2下面是一些关于事件的重要事项

  • 发布者:意思就是发布某一个事件的类或者是结构,其他类可以在该事件发生时得到通知

  • 订阅者:注册并在事件发生时得到通知类或者是结构。

  • 事件处理程序(event handler):由订阅者注册到事件中的方法,在发布者触发事件时执行。事件处理程序方法可以定义在事件所在的类中或者是结构中,也可以在不同的类或者结构中。

*其实事件和委托是非常相似的,实际上事件就像专门用于某种特殊的用途的简单委托,事件包含了一个私有的委托,委托中又几个方法。

*有关事件的私有委托重要事项如下:

  1. 事件提供了对他的私有控制委托的结构的访问。也就是说你没有办法直接访问(可以这样说就是事件就是安全版的委托)

  1. 事件中可以用的操作比委托少,对于事件我们只可以添加,删除或者调用事件处理程序

  1. 当事件被触发时候,事件调用委托依次来调用委托中的方法

3:源代码组件概览

事件中使用的代码是由5部分组成的,下面对这些组件一一进行介绍

  • 委托类型的声明:事件和事件处理程序必须有相同的签名和返回值,他们通过委托类型进行描述

  • 事件处理程序声明: 订阅者类中会在事件触发时执行的方法声明。他们不一定是显示命名的方法,还可以是匿名方法和Lambda表达式

  • 事件声明: 发布者类中必须声明一个订阅者类可以注册的事件成员。当声明的事件为publi时,称为发布了事件。

  • 事件注册: 订阅者必须订阅事件,才能在事件触发时得到通知。

  • 触发事件的代码:发布者类中“触发”事件并导致调用注册的所有事件处理程序的代码。

4:声明事件

发布者必须提供事件对象。

  • 事件声明在一个类中

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值