事件

作者: 东经20度 | 来源:发表于2019-04-14 11:04 被阅读0次

事件类似于异常,由对象引发,可以提供代码来处理事件。事件可以有许多订阅的处理程序,在该事件发生时,这些处理程序都会被调用,其中包括引发该事件的对象所在的类的事件处理程序,但事件处理程序也可能在其他类中。

1. 发布者和订阅者

通知某件事发生的为发布者。
对某件事关注的为订阅者。

2. 事件触发和注册

想要事件发生时被通知,必须注册以表示关注。这样事件发生时会通知所有该事件的订阅者。

3. 事件声明

使用委托以及 event 关键字来对事件进行声明。

//定义委托
public delegate void Handler();
//基于委托定义事件
public event Handler NewDog;

注意:定义委托的访问修饰符的访问权限不能低于事件访问修饰符的权限。

4. 事件订阅

//订阅事件
NewDog+=方法;
//取消订阅
NewDog-=方法

5. 事件触发

if(NewDog!=null){
  NewDog();
}

6. 例子

class Dog{
  static int num=0;
  public delegate void DogShow(string str,int num);
  public event DogShow dogShow;
  public Dog(string name){
    num++;
    if(dogShow!=null){
      dogShow(name,num)
    }
  }
}
//订阅者
class Client{
  public void Show(string name;int num){
    Console.WriteLine(“I am {0},num={1}”,name,num);
  }
}
//订阅者
class ClientB{
  public void Show(string name;int num){
    Console.WriteLine(“I am ClientB_{0},num={1}”,name,num);
}
class Program{
  static void Main(string[] args){
    Client CA=new Client();
    ClientB CB=new ClientB();
    //订阅事件
    Dog.dogShow+=CA.Show;
    Dog.dogShow+=CB.Show;
    Dog d=new Dog(“d”);
    Dog s=new Dog(“s”)
    Console.ReadKey();
  }
  }
}
//运行结果
I am d,num=1
I am ClientB_d,num=1
I am s,num=2
I am Client_s,num=2

相关文章

  • JavaScript事件01——事件流

    大纲:概念(事件、事件流)事件流模型(事件冒泡、事件捕获、DOM事件流) 一、概念: 1、事件:事件就是用户或浏览...

  • 事件对象,事件监听,事件冒泡,事件代理

    一、事件对象 二、冒泡事件:(事件从子元素往父级元素向上触发事件)处理兼容问题:主流浏览器:e.stopPropa...

  • 事件总结

    DOM事件主要内容 事件流 事件注册 事件对象 事件分类 事件代理 什么是DOM事件? 事件是某个行为或者触发,比...

  • Javascript事件系统

    本文内容 事件基础 事件监听方式 事件默认行为 事件冒泡与事件捕获 事件绑定与事件委托 事件基础 注意:本文不会深...

  • Javascript事件-事件冒泡,事件捕获,事件监听和事件委托

    事件处理机制 (一)DOM事件流 DOM模型是一个树形结构,在DOM模型中,HTML元素是有层次的。当一个HTML...

  • 【事件】事件流

    1、JavaScript和HTML之间的交互通过事件实现的。2、事件流描述的是从页面中接收事件的顺序。3、IE 和...

  • 【事件】事件对象

    触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的额信息。(包括导致事件的元...

  • 【事件】事件类型

    DOM3 级事件规定了以下几类事件: UI(User Interface,用户界面)事件,当用户与页面上的元素交互...

  • 2018-09-10JQuery高级应用

    JQuery事件 window事件 鼠标事件 键盘事件 表单事件 事件注册语法$(对象).type(fn)type...

  • JS事件

    ?事件的相关术语 事件类型: 鼠标事件、键盘事件事件名称: click、dbclick等事件目标: 表示与发生事件...

网友评论

      本文标题:事件

      本文链接:https://www.haomeiwen.com/subject/skiniqtx.html