代码中实现了三个自定义事件,分别为自定义事件、自定义事件及自定义参数、使用Action自定义事件。
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AppMain
{
/// <summary>
/// 入口
/// </summary>
public class RunEventDemo
{
#region 用Action定义事件测试
public void RunProgramThree()
{
EventDemoThree edth = new EventDemoThree();
edth.CustomerEvent += new Action<object, EventArgs>(edth_CustomerEvent);
//触发事件
edth.OnCustomerEvent();
}
void edth_CustomerEvent(object obj, EventArgs e)
{
Console.WriteLine("已调用Actiion执行的事件");
}
#endregion
#region 使用自定义事件参数事件测试
public void RunProgramTwo()
{
EventDemoTwo edt = new EventDemoTwo();
edt.CustomerEvent += new EventDemoTwo.CustomerEventHander(edt_CustomerEvent);
//创建事件参数
CustomerEventArgs cea = new CustomerEventArgs();
cea.CustomerMsg = " test";
//触发事件
edt.OnCustomerEvent(cea);
}
void edt_CustomerEvent(object sender, CustomerEventArgs e)
{
Console.WriteLine("你传入的参数值为:" + e.CustomerMsg);
}
#endregion
#region 无参的自定义事件测试
public void RunProgramOne()
{
//事件接收者
EventDemoOne ed = new EventDemoOne();
//4.注册事件处理程序
ed.customerEvent += new EventDemoOne.CustomerEventHander(RunDemo_customerEvent);
//6.调用事件
ed.OnEvent();
}
//5.编写事件处理程序
public void RunDemo_customerEvent(object sender, EventArgs e)
{
Console.WriteLine("test");
}
#endregion
}
#region无参的自定义事件
/// <summary>
/// 无参的自定义事件
/// </summary>
public class EventDemoOne
{
//1.声明关于事件的委托;
public delegate void CustomerEventHander(object sender, EventArgs e);
//2.声明事件;
public event CustomerEventHander customerEvent;
//3.编写引发事件的函数;
public void OnEvent()
{
if (this.customerEvent != null)
{
this.customerEvent(this, new EventArgs());
}
}
}
#endregion
#region自定义事件,使用自定义事件参数
/// <summary>
/// 自定义事件参数
/// </summary>
public class CustomerEventArgs : EventArgs
{
public string CustomerMsg { get; set; }
}
public class EventDemoTwo
{
public delegate void CustomerEventHander(object sender, CustomerEventArgs e);
public event CustomerEventHander CustomerEvent;
//3.编写引发事件的函数,注意多了个参数;
public void OnCustomerEvent(CustomerEventArgs e)
{
this.CustomerEvent(this, e);
}
}
#endregion
#region使用Action自定义事件
public class EventDemoThree
{
public event Action<object, EventArgs> CustomerEvent;
public void OnCustomerEvent()
{
this.CustomerEvent(this, new EventArgs());
}
}
#endregion
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架