C#事件回调委托EventHandler
来源:互联网 发布:python 获取程序父目录 编辑:程序博客网 时间:2024/06/05 15:23
C#预定义了一个事件委托EventHandler,定义如下:
// Summary:
// Represents the method that will handle an event.
//
// Parameters:
// sender:
// The source of the event.
//
// e:
// An System.EventArgs that contains the event data.
//
// Type parameters:
// TEventArgs:
// The type of the event data generated by the event.
[Serializable]
public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
可以看出委托EventHandler其实是一个泛型委托,返回值为void,有两个参数,第二个参数为泛型TEventArgs
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果我们的事件回调函数返回值类型为void,那么就可以用委托EventHandler来实现事件回调了,代码如下:
using System;using System.Collections.Generic;using System.Text;namespace TestApp{ class Program { public static void Main(string[] args) { Test tst = new Test(); tst.InitAddEvent(AddEvent); // 传递事件处理函数地址 tst.CallAddEvent(); // 触发事件 Console.Read(); // 暂停程序 } // 加法事件 public static void AddEvent(object sender, EventArgs e) { AddEventData ad = (AddEventData)e; int c = ad.a + ad.b; Console.WriteLine("触发事件AddEvent, a+b={0}", c); } } public class Test { // 事件对象 private event EventHandler<AddEventData> OnAddEvent; // 初始化事件 public void InitAddEvent(EventHandler<AddEventData> addEvent) { //this.OnAddEvent = addEvent; this.OnAddEvent += new EventHandler<AddEventData>(addEvent); } // 触发事件 public void CallAddEvent() { if (OnAddEvent != null) { AddEventData ad = new AddEventData(); ad.a = 1; ad.b = 2; OnAddEvent(this, ad); } } } // 事件参数,必须继承类EventArgs public class AddEventData:EventArgs { public int a; public int b; }}
- C#事件回调委托EventHandler
- C#事件回调委托EventHandler
- 事件委托 EventHandler
- 事件委托 EventHandler 。
- C# EventHandler 委托
- C# EventHandler 委托
- 第一章、C#委托和事件(Delegate、Event、EventHandler、EventArgs)
- C#委托和事件(Delegate、Event、EventHandler、EventArgs)
- C#委托和事件(Delegate、Event、EventHandler、EventArgs
- c# 事件 EventHandler
- c# 委托 事件 EventHandler 观察者模式 详解,以及和java的比较
- C#控制台基础 helloworld之 用类中的EventHandler委托的事件输出
- C# EventHandler and Delegate(委托的使用)
- C# EventHandler and Delegate(委托的使用)
- C# EventHandler and Delegate(委托的使用)
- C# EventHandler and Delegate(委托的使用)
- C# EventHandler and Delegate(委托的使用)
- EventHandler 委托
- JavaScript对象
- HDU - 2393 Higher Math
- 关于c/c++中信号传送数据函数sigqueue的认识
- 指针初级
- 2015/1/10
- C#事件回调委托EventHandler
- 迁移填坑第二季
- 简单工厂模式的一种扩展
- 【WebView】带加载进度条的WebView及Chrome联调
- 二、php制作简易的计算器
- WCDMA SIB消息
- openGL超级宝典第三章例子——贴花
- [编程风格要素] I 简介
- Leetcode: Factorial Trailing Zeroes