c#事件处理中事件信息EventArgs的使用和类型内部事件委托delegate的调用
2012-06-06 20:24
741 查看
事件信息EventArgs:http://msdn.microsoft.com/zh-cn/library/system.eventargs.aspx
1事件信息可以用于传递处理附带的事件数值,可以自定义事件信息类型来继承
2事件委托可以声明在事件的类型中,并可以通过【类型名.事件委托名】来调用该委托类型创建事件的处理代理
可以看到,该事件委托并非全局声明,但依旧可以通过
来进行事件的绑定~
1事件信息可以用于传递处理附带的事件数值,可以自定义事件信息类型来继承
2事件委托可以声明在事件的类型中,并可以通过【类型名.事件委托名】来调用该委托类型创建事件的处理代理
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 事件2 { class Program { static void Main(string[] args) { myEventer mEr = new myEventer(); EventWatcher EWr = new EventWatcher(mEr); mEr.OnTrigger("浣熊市行动", 1); } } class myEventArgs:EventArgs//声明事件信息类型,并继承于EventArgs { public myEventArgs(string strinfo,int intinfo) { this.strinfo = strinfo; this.intinfo = intinfo; } private string strinfo; private int intinfo; public string StrInfo { get { return strinfo; } } public int IntInfo { get { return intinfo; } } } class myEventer//声明用于声明事件的类型 { public delegate void myEventerHandler(object sender,myEventArgs mEa);//在类型内部声明事件代理 public event myEventerHandler trigger;//通过事件代理声明事件event public void OnTrigger(string strinfo,int intinfo)//事件触发的方法,这里要传递2个参数 { myEventArgs mEa = new myEventArgs(strinfo,intinfo);//以参数初始化一个新的事件信息对象 trigger(this, mEa); } } class EventWatcher//事件观察和事件处理方法绑定类 { private myEventer mEr; public EventWatcher(myEventer mer)//通过构造函数传递一个事件触发类对象,用于绑定事件处理方法 { this.mEr = mer; mEr.trigger += new myEventer.myEventerHandler(processEvent);//虽然事件委托位于事件类型中,但仍可以通过[类型.事件委托]来访问创建 } private void processEvent(object sender,myEventArgs mEa)//和事件委托相同签名的事件处理方法 { Console.WriteLine("已获取事件信息,事件编号:{0},事件名称:{1}",mEa.IntInfo,mEa.StrInfo); } } }
可以看到,该事件委托并非全局声明,但依旧可以通过
类型对象.事件+=new 类型名称.事件委托(事件处理方法名);
来进行事件的绑定~
相关文章推荐
- 关于C#的delegate(委托)和event(事件)的使用
- C#_delegate - Pair<T> & 简单顺序逆序 & 方法委托(在Pair类下)&枚举类型 混搭使用
- C#_delegate - 用委托实现事件,Display和Log类都使用Clock对象
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 事件与委托详解 Delegate (c#)
- C#调用C++DLL 使用 德卡 读卡器 获取身份证信息
- c#中的delegate(委托)和event(事件)
- Unity3D技巧在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信
- C#的事件处理与委托
- 在C#中使用委托的方式触发事件
- C# 使用委托实现多线程调用窗体
- c#中的委托与事件delegate and event
- C#练习委托、事件、事件处理
- C#使用Binding事件完成超越内置类型转换的功能
- c#中的delegate(委托)和event(事件)
- C# 委托(delegate)事件(event)分析
- C#匿名委托和Java匿名局部内部类使用方法示例
- C# winform窗体间传值(使用委托或事件)
- C#解惑2——Delegate,Action,Func,匿名方法,匿名委托,事件(转)
- c#中的delegate(委托)和event(事件)