C#的事件机制

原创 2004年10月02日 23:26:00
C#的事件机制是基于委托实现的。实现一个事件,要先定义一个委托类型
class1
{
 public delegate void mydelegate (myEventArgs e);
 public event mydelegate event1;
}
然后我们可以使用+=和-=注册、移除事件
class1.event1 += new mydelegate(new myEventArgs());
在class中引发事件时最好这样
class1
{
 public fireEvent()
 {
  if(event1 != null)
   event1();
 }
}


如果不想声明自己的委托类型的话,可以使用System.EventHandler的委托类型
public delegate void EventHandler(object sender, EventArgs e);
其中EventArgs转送附加参数。
可以实现自己的EventArgs类
class myEventArgs:EventArgs
{
}
类名最好以EventArgs 结尾,这是个默认规则
调用时如果不想使用参数可以传递
EventArgs.Empty

 

事件其实背后做了很多工作,自动生成一个委托实例、一个注册委托的add_XXX方法、一个注销委托的

Remove_XXX方法。事实上这两个方法可以自己定制。只要声明事件时使用以下语法:
   public event MyDelegate1 Event1
   {
      add 
      {
      }
      remove
      {
      }
   }
在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)

ie事件机制和火狐事件机制

事件机制 事件冒泡:事件从当前元素对象触发,然后向上层元素搜索相同对象事件并触发(直搜到document节点)。IE事件默认都只这种类型的事件。 事件捕获:从document节点开始搜索事件,然后...
  • sinat_32067081
  • sinat_32067081
  • 2017年03月28日 10:27
  • 1517

Java事件机制理解及应用

1.从总体看事件机制其实事件机制是一种处理世界的方式和方法。传统的顺序程序设计总是按照流程来安排所做的工作,而事件机制的特点在于:等待,如果有事情发生则处理之。这样的好处是顺序程序设计在没有事情做的时...
  • JianZhiZG
  • JianZhiZG
  • 2006年12月02日 20:39
  • 12472

C#事件机制及响应方法

C#语言自C/C++演变而来。它是现代、简单、完全面向对象和类型安全的。C#语言是微软公司针对.Net平台才推出来的一门新语言,作为.Net平台的第一语言,它几乎集中了所有关于软件开发和软件工程研究的...
  • vsweaver
  • vsweaver
  • 2006年08月01日 16:25
  • 1267

JavaScript事件机制详解

一、事件处理程序 a.     DOM0级事件处理程序,被认为是元素的方法。   在事件处理程序中,通过this访问元素的任何属性和方法。 b.    DOM2级事件处理程序 DOM2级事件定义...
  • lysunnyrain
  • lysunnyrain
  • 2016年03月16日 10:54
  • 811

理解事件机制

 在所有关于C#事件机制的介绍中,我更倾向于发布者/订阅者(Publisher/Subscriber)这种描述。理解事件机制并不是一件容易的事情,它所涉及的思想值得我们好好去研究。 本文资...
  • shuiyingzi5
  • shuiyingzi5
  • 2013年12月17日 16:21
  • 655

C# 事件机制

在所有关于C#事件机制的介绍中,我更倾向于发布者/订阅者(Publisher/Subscriber)这种描述。理解事件机制并不是一件容易的事情,它所涉及的思想值得我们好好去研究。本文资源来自《C#与....
  • mane_yao
  • mane_yao
  • 2010年06月07日 11:11
  • 399

spring中事件机制

一、事件机制 事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事,等等。事件有系统事件...
  • bxyz1203
  • bxyz1203
  • 2011年03月16日 14:41
  • 8576

C# 事件机制

转自:http://www.cnblogs.com/donghaiyiyu/archive/2007/07/29/828738.html 在所有关于C#事件机制的介绍中,我更倾向于发布者/订阅者(...
  • penaiyan
  • penaiyan
  • 2013年09月12日 21:01
  • 634

JS DOM事件机制详解

1、事件流 html 元素触发事件的顺序。 2、事件冒泡 IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较...
  • zouchao911
  • zouchao911
  • 2014年11月27日 15:32
  • 1270

了解Gtest中的事件机制

引入事件机制 举例:我们使用gtest框架测试STL中的map这个数据结构时,我们假设只测find(),size()这两个函数,如果不使用事件机制,则测试的TEST()部分如下: 我们可以看到,在每...
  • qq_33951180
  • qq_33951180
  • 2017年08月05日 10:46
  • 514
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#的事件机制
举报原因:
原因补充:

(最多只允许输入30个字)