LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#委托运用-将方法作为参数

admin
2025年4月19日 14:54 本文热度 47

摘要

 ❝    

本文描述了如何在C# 中运用委托将方法作为参数。

前言 


在学习Halcon的过程中给,学习了绘制对象绑定事件的方式,它通过将方法作为参数传递进去在内部实现其功能。  在C#中如何将方法作为参数传递呢,当然是用委托。

(一)基本流程

此案例的基本流程

1、创建一个消息模型MessageModel(MessageEventsModel):作为委托中的参数。  

2、创建一个消息发送者SqlMessageSender :模拟操作,然后将操作消息发送出去。  

 3、创建一个消息接收者MessageReceiver:接收发送者发送的消息。   

4、在程序如何Main中创建发送者(SqlMessageSender)和接收者(MessageReceiver)对象。   

5、将接收方法作为参数传入发送者创建的OnMessageUpdate方法中。

OnMessageUpdate(messageReceiver.MessageReceivedCallback);

一、预览 


(一)运行效果

二、代码 


(一)Program代码

   
Program
internal static class Program{    static void Main()    {        SqlMessageSender sqlMessageSender = new SqlMessageSender();        MessageReceiver messageReceiver = new MessageReceiver();        sqlMessageSender.OnMessageUpdate(messageReceiver.MessageReceivedCallback);        sqlMessageSender.Add();        sqlMessageSender.Delete();        sqlMessageSender.Update();        sqlMessageSender.Query();    }}#region 消息接收者public class MessageReceiver{    public void MessageReceivedCallback(MessageEventsModel messageModel)    {        Console.WriteLine($"【{this.GetType().Name}】=>接收到消息【{messageModel.Message},消息等级:{messageModel.Level}】");    }}#endregion#region 消息发布者public class SqlMessageSender{    private MessaegeUpdateCallbackClass InternalFunc;    public void OnMessageUpdate(MessaegeUpdateCallbackClass func)    {        InternalFunc = func;        func?.Invoke(new MessageEventsModel(MessageLevel.Info, $"回调方法传递"));    }    public void Add()    {        OnFunc("添加");    }    public void Delete()    {        OnFunc("删除");    }    public void Update()    {        OnFunc("修改");    }    public void Query()    {        OnFunc("查询");    }    private void OnFunc(string message)    {        InternalFunc?.Invoke(new MessageEventsModel(MessageLevel.Info, $"执行:{message} "));    }}#endregion#region 消息/// <summary>/// 消息委托/// </summary>public delegate void MessaegeUpdateCallbackClass(MessageEventsModel MessageModel);
/// <summary>/// 消息事件委托/// </summary>public class MessageEventsModel{    public string Message { getset; }    public MessageLevel Level { getset; }    public MessageEventsModel(MessageLevel level, string message)    {        Level = level;        Message = message;    }}/// <summary>/// 消息等级枚举/// </summary>public enum MessageLevel{    /// <summary>    /// 无异常    /// </summary>    None = 0,    /// <summary>    /// 信息    /// </summary>    Info,    /// <summary>    /// 警告    /// </summary>    Warning,    /// <summary>    /// 错误    /// </summary>    Error,    /// <summary>    /// 致命错误    /// </summary>    Fatal,}#endregion
   

END


作者:编程笔记in

出处:blog.csdn.net/weixin_43626218/article/details/141433450


该文章在 2025/4/19 14:54:46 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved