c# 回调函数简单解释理解

  • 使用场景举例
    假设有一产品P需要A工厂和B工厂合作完成。
    A厂负责包装喷绘,B厂负责生产,生产工作由A发起,由B厂完成后及时反馈给A厂,这里由A厂发起,后续A厂及时收到B厂的反馈我们称为回调实现。
    定义类A,生产日期属性ProductionDate ,保质期属性ProductionDate ,以及喷绘方法PrintDate(此方法为B厂完成反馈后A厂需要执行的方法)。
    定义类B,这里需要用到委托(委托我们这里不过多介绍,不太明白的同学可以自行了解下),用来指向函数,定义带两个参数的委托SetDate(DateTime dt1, DateTime dt2)。
    用法如下:
        public class A
        {
            public DateTime ProductionDate { get; set; }
            public DateTime ProductionDate { get; set; }
            //回调函数
            private void PrintDate(DateTime dt1, DateTime dt2)
            {
                //dosomething...;
            }
            //调用B CreatingProducts
            private A()
            {
                B b = new B();
                //传入回调函数以及参数
                b.CreatingProducts(ProductionDate, QualityDate, PrintDate);
            }
        }
        public class B
        {
            public delegate void SetDate(DateTime dt1, DateTime dt2);
            public void CreatingProducts(DateTime productionDate, DateTime qualityDate, SetDate setDate)
            {
                //dosomething...;
                productionDate = "赋值";
                qualityDate= "赋值";
                //回调实现
                setDate(productionDate, qualityDate);
            }
        }

这里的PrintDate()即为回调函数。通常来说B厂都是封装起来的, 只提供接口。只要在A厂里调用B厂的CreatingProducts方法即可得到响应,从而返过来触发A厂的PrintDate来完成打印包装等动作,至此回调函数的作用就明白啦。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值