对事件触发(EventHandler)的简单理解
当某个对象的某个事件或者是执行过程发生了,这个对象可以通过事件通知另外一个对象,另外一个对象可以通过传递进来的参数进行相应的处理;
网上有很多关于事件触发的例子,借鉴其中的一个例子对事件触发做如下理解:
定义事件触发需要如下3步
一、事件参数Class定义
- 定义事件的参数
二、事件Class定义
1、定义一个事件对象
2、定义可以触发此事件的函数
三、使用Class定义
1、定义事件处理函数
2、定义一个事件Class变量
3、对事件Class变量使用+=进行委托
4、对事件Class变量调用可以触发此事件的函数
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
// 事件参数,继承类EventArgs
public class AddEventData : EventArgs
{
public int a;
public int b;
}
// 事件Class
public class Test
{
// 事件对象
public event EventHandler<AddEventData> OnAddEvent;
// 触发事件
public void CallAddEvent()
{
if (OnAddEvent != null)
{
AddEventData ad = new AddEventData();
ad.a = 1;
ad.b = 2;
OnAddEvent(this, ad);
}
}
}
// 使用Class
class Program
{
static void Main(string[] args)
{
Test tst = new Test();
tst.OnAddEvent += new EventHandler<AddEventData>(AddEvent);
tst.CallAddEvent(); // 触发事件
Console.Read(); // 暂停程序
}
// 事件处理函数
static void AddEvent(object sender, EventArgs e)
{
AddEventData ad = (AddEventData)e;
int c = ad.a + ad.b;
Console.WriteLine("触发事件AddEvent, a+b={0}", c);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】