C#学习 - 事件

事件(Event)简介

类型的成员,使对象或类具备通知能力的成员
对象A拥有一个事件B,当事件B发生时,对象A又能通知别人的能力,且会推送通知内容(事件参数)
根据通知和事件参数来采取行动的行为称为“响应事件”,响应事件时所做的事称为“事件处理器(Event Handler)
事件的功能:通知 + 可选的事件参数
事件的用法:用于对象或类之间的动作协调与信息传递
事件模型(Event model):也就是“发生-响应”模型。“发生-响应”中有五个部分:对象A存在事件B;另一个或一群对象“订阅”了这个事件B;事件B发生;“订阅”了这个事件的对象依次被通知;被通知到的对象根据事件参数来对事件进行响应

事件组成

  • 事件的拥有者(event source,对象)
  • 事件成员(event,成员)
  • 事件的响应者(event subscriber,对象)
  • 事件处理器(event handler,方法成员):一种回调方法
  • 事件订阅:将事件处理器与事件关联在一起
    事件不会主动发生,在被拥有者的某些内部逻辑触发后才会发生
    用于订阅事件的事件处理器必须和事件遵守同一个约定,约定可以约束事件发送给事件处理器的消息的类型,还约束了事件处理器能够处理消息的类型。这个约定就是委托

事件应用

using System;
using System.Timers;

namespace ConsoleApp1
{
   
    internal class Program
    {
   
        static void Main(string[] args)
        {
   
            Timer timer = new Timer();//timer就是事件的拥有者
            timer.Interval = 1000;//设置间隔,单位为毫秒
            Kid kid = new Kid();//kid是事件响应者
            timer.Elapsed += kid.Action;//鼠标移到Action下的红色波浪线再Ctrl+.自动生成方法
            //+=:订阅事件
            //Elapsed事件:达到间隔时发生
            //成员前有“闪电”就是事件;“方块”是方法;“扳手”是属性
            timer.Start();//开始计数
            Console.ReadLine();
        }
    }
    class Kid
    {
      //先不写Kid中的内容,在主函数中写到订阅事件后,Ctrl+.直接生成Action方法
        internal 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值