(转)关于c#中的事件
原文链接http://blog.csdn.net/joyhen/article/details/8500211
如有不明白的地方欢迎加QQ群14670545 探讨
最近在看委托,然后看到事件,以前一直很模糊,关于事件的触发者和响应者的关联。贴一个简单的例子:
1.新建一个类Control.cs
- using System;
- namespace EventComplex
- {
- /*
- * C#中的事件处理实际上是一种具有特殊签名的delegate
- */
- public class Control
- {
- /// <summary>
- /// 代表事件发送者
- /// </summary>
- /// <param name="sender">代表事件发送者</param>
- /// <param name="e">事件参数类
- /// <remarks>用来包含与事件相关的数据,所有的事件参数类都必须从System.EventArgs类派生</remarks>
- /// </param>
- public delegate void MyEventHandler(object sender, MyEventArgs e);//System.EventArgs e
- public event MyEventHandler MyEvent;
- public Control()
- {
- this.MyEvent += new MyEventHandler(RaiseSomeEvent);
- }
- /// <summary>
- /// 一个事件
- /// </summary>
- public void RaiseSomeEvent(object sender, MyEventArgs e)
- {
- Console.WriteLine("hello " + e.ParamName);
- Console.ReadLine();
- }
- public void RiseSomeEvent()
- {
- //System.EventArgs e = new System.EventArgs();
- Console.Write("Please input 'Name':");
- string _param = Console.ReadLine();//ReadLine:按下回车以后才读取,然后触发MyEvent事件
- //if (_param.Equals("jon"))//在用户输入jon的情况下触发事件,否则不触发
- MyEvent(this, new MyEventArgs(_param));//MyEvent(this,e)
- }
- }
- public class MyEventArgs : System.EventArgs
- {
- public string ParamName;
- public MyEventArgs(string _name)
- {
- ParamName = _name;
- }
- }
- }
2.我们去Main函数里面测试一下;
- public static void demo4()
- {
- Control ctr = new Control();
- ctr.MyEvent += new Control.MyEventHandler(ResponseSomeEvent);
- ctr.RiseSomeEvent();
- }
- public static void ResponseSomeEvent(object sender, EventArgs e)
- {
- Console.WriteLine("Some event occur!");
- }
- static void Main(string[] args)
- {
- demo4();
- }
(转)关于c#中的事件的更多相关文章
- C++中的事件分发
本文意在展现一个C++实现的通用事件分发系统,能够灵活的处理各种事件.对于事件处理函数的注册,希望既能注册到普通函数,注册到事件处理类,也能注册到任意类的成员函数.这样在游戏客户端的逻辑处理中,可以非 ...
- javascript中的事件冒泡和事件捕获
1.事件冒泡 IE 的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档).以下面的HTML ...
- jQuery文本框中的事件应用
jQuery文本框中的事件应用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...
- 怎么理解js中的事件委托
怎么理解js中的事件委托 时间 2015-01-15 00:59:59 SegmentFault 原文 http://segmentfault.com/blog/sunchengli/119000 ...
- jQuery中的事件绑定方法
在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...
- 四、jquery中的事件与应用
当用户浏览页面时,浏览器会对页面代码进行解释或编译--这个过程实质上是通过时间来驱动的,即页面在加载时,执行一个Load事件,在这个事件中实现浏览器编译页面代码的过程.时间无论在页面元素本身还是在元素 ...
- ActiveX(二)Js 监听 ActiveX中的事件
在上一篇随笔:ActiveX(一)第一个简单的Demo 中,已经可以实现 js 单向调用 ActiveX 中的方法,在很多情况下ActiveX中的方法的执行时相对耗时.耗性能的.在这样的情况下.Act ...
- jQuery:详解jQuery中的事件(二)
上一篇讲到jQuery中的事件,深入学习了加载DOM和事件绑定的相关知识,这篇主要深入讨论jQuery事件中的合成事件.事件冒泡和事件移除等内容. 接上篇jQuery:详解jQuery中的事件(一) ...
- jQuery:详解jQuery中的事件(一)
之前用过一些jQuery的动画和特效,但是用到的部分也不超过10%的样子,感觉好浪费啊——当然浪费的不是jQuery,而是Web资源.后来就想深入研究下jQuery的内部机理,读过两遍jQuery源代 ...
- DOM中的事件对象
三.事件对象事件对象event1.DOM中的事件对象(1).type:获取事件类型(2).target:事件目标(3).stopPropagation() 阻止事件冒泡(4).preventDefau ...
随机推荐
- Phaser开源2d引擎 javascript/html5游戏框架
功能特点(Features) 易维护代码(Easy Asset Loading) Phaser可以加载图片,音频文件,数据文件,文本文件和自动解析精灵图和纹理地图集数据(出口纹理封隔器或Flash C ...
- 逻辑很重要:一句sql语句的事,自己却想了半天,绕了个大弯子
问题:系统升级后审核认证信息分别写入两个表,现在需要链接用户表和相应的新旧审核表获取字段值? 钻进胡同里:一直纠结于升级之后的会员信息从新表查,升级之前的数据从旧表查,纠结于根据时间戳分条件判断, 其 ...
- win7 IIS7.0 【IIS 管理器无法验证此内置帐户是否有访问权】
异常信息: 服务器配置为将传递身份验证和内置帐户一起使用,以访问指定的物理路径.但是,IIS 管理器无法验证此内置帐户是否有访问权.请确保应用程序池标识具有该物理路径的读取访问权.如果此服务器加入到域 ...
- Day4 内置函数补充、装饰器
li = [11,22,33,44]def f1(arg): arg.append(55)#函数默认返回值None,函数参数传递的是引用li = f1(li) print(li) 内置函数补充: ...
- uva10561 - Treblecross
Treblecross is a two player game where the goal is to get three `X' in a row on a one-dimensional bo ...
- iOS8之后CoreLocation定位的使用
在Info.plist文件中添加如下配置: //始终允许访问位置信息 (1)NSLocationAlwaysUsageDescription //使用应用程序期间允许访问位置数据 (2)NSLocat ...
- Solr4.8.0源码分析(12)之Lucene的索引文件(5)
Solr4.8.0源码分析(12)之Lucene的索引文件(5) 1. 存储域数据文件(.fdt和.fdx) Solr4.8.0里面使用的fdt和fdx的格式是lucene4.1的.为了提升压缩比,S ...
- Node.js 安装 初体验(1)
1.安装nodejs http://nodejs.org/download/ 自动根据系统下载自己的版本node.js 2.环境变量 windows 安装,不需要配置环境变量 mac安装后,会提 ...
- UART接口
1.UART UART(Universal Asynchronous Receiver and Transmitter)通用异步收发器(异步串行通信口),是一种通用的数据通信协议,它包括了RS232. ...
- java中利用RandomAccessFile读取超大文件
超大文件我们使用普通的文件读取方式都很慢很卡,在java中为我提供了RandomAccessFile函数,可以快速的读取超大文件并且不会感觉到卡哦,下面看我的一个演示实例. 服务器的日志文件往往达到4 ...