zoukankan      html  css  js  c++  java
  • 回调函数示例

    回调函数的意义在于把要处理的程序逻辑交给调用者,被调用者只需要提供对外的接口即可.

    Program.cs

    代码
    using System;

    namespace CallBackDemo
    {
    class Program
    {
    static void Main(string[] args)
    {
    Program prog
    = new Program();
    SumClass sc
    = new SumClass();
    sc.StartWork(
    3, 5); //提供参数。
    sc.DoWork(prog.MySum); //执行这里提供的对应该公开委托签名的方法。
    sc.ShowResult(); //显示处理结果。
    Console.ReadKey();
    }
    //这里的处理逻辑完全由调用者自己决定,只需要匹配对应的公开委托的签名。
    public int MySum(int x, int y)
    {
    return x + y;
    }
    }
    //为了简化数据处理的部分,这里只使用一个加法运算,突出程序的流程和回调的意义。
    public class SumClass
    {
    //通过对外访问接口传入的参数。
    private int x;
    private int y;
    //执行处理后反馈的结果,如果委托的返回类型是void,这里可以省略。
    private int ret;
    //提供对外的访问接口,这里就是一个委托。
    public delegate int Sum(int x, int y);
    //如果被调用的函数没有参数,这里也可以省略。
    public void StartWork(int x, int y)
    {
    this.x = x;
    this.y = y;
    }
    //程序处理部分。
    public void DoWork(Sum sum)
    {
    ret
    = sum(x, y);//处理逻辑交给调用者,这里只负责获取结果。
    }
    //执行后反馈结果,其实这里也可以和程序处理部分合二为一,这里旨在演示回调可以存在诸多处理步骤中的某一步或者某几步。
    public void ShowResult()
    {
    Console.WriteLine(
    "最后的结果是:" + ret);
    }
    }
    }
  • 相关阅读:
    Spring源码学习之容器的基本实现(一)
    面向对象设计原则
    简单易懂带你了解红黑树
    简单易懂带你了解二叉树
    单例模式
    原形模式
    数组与链表
    记一次解决postgresql数据库内存泄露的问题
    记一次排查CPU高的问题
    react ts 设置paths 和 声明非@types的模块
  • 原文地址:https://www.cnblogs.com/lucienbao/p/callbackfunction.html
Copyright © 2011-2022 走看看