十五.事件委托的实现
事件委托:
委托就是一种引用方法的类型。
一旦为委托分配了方法,委托将与该方法具有完全相同的行为。
委托方法的使用可以像其他任何方法一样,具有参数和返回值。
委托可以看作是对函数的抽象,是函数的“类”,委托的实例将代表一个具体的函数。
一个委托可以搭载多个方法,所有方法被一次唤起。
委托对象所搭载的方法并不需要属于同一个类。
委托对象所搭载的方法必须有相同的原型和形式,即相同的参数类表和返回类型。
Demo:
//声明一个委托,叫EventHandler(事件处理程序),无参数,无返回值
Delegate void EventHandler();
classBoss : Subject
{
//声明一个事件Update,类型为委托EventHandler
//声明一个EventHandler(事件处理程序)的委托事件,名称叫Update
public event EventHandler Update;
public void Notify()
{
Update();
}
Pragram:
//CloseStockMarket方法通过实例化委托登记到Update中
//+=表示add_Update()
boss.Update += newEventHandler(tongshi1.CloseStockMarket);
boss.Notify();
tongshi1的实体中的一个方法:
public void CloseStockMarket()
{
Console.WriteLine("{0} {1}关闭股票。",sub.SubjectState,name );
}
增加参数:
Publicdelegate void CatEventHandler(object sender,CatEventArgs args);
Publicclass CatEventArgs:EventArgs
{ public string Name{get;set;} }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述