1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace 回调函数Demo
  7. {
  8.  
  9. /* 回调函数的作用,1.分装;2.异步;3.扩展具体方法。
  10. * 通过一个委托给出实现功能模块扫遵循的协议:参数和返回类型,而这个委托我们就叫做回电函数,本质上就是一个委托。
  11. * 回调函数只是一个标准,一个占位符。而具体工作的方法只要是满足回调函数(也就是委托)给出的协议即可。
  12. * 可见一个回调函数(委托)可以有多个具体方法。这也满足多播委托的特点
  13. *
  14. * 本例我们通过回调函数实现2个数的运算
  15. * 比如说主程A写主模块,而程序员B写2个数之间的操作,比如+,-,*,/,拼接等等。
  16. * 而回调函数就是给出A,给B的一个协议。我不管你具体实现什么运算,也不管你怎么实现。
  17. * 我只需要告诉你。输入2个int数 ,给我返回一个int类型的运算结果
  18. *
  19. * 相关知识点回顾:
  20. * 1、在其他其他平级空间中使用必须是静态方法,否则就将这个方法写到一个类里,再在使用的地方实例化这个类
  21. */
  22. class Program
  23. {
  24. //1.定义一个委托,相当于定义了一个协议参数,返回值的协议,做什么事怎么做A不关心
  25. public delegate int Del_CaluationCallback(int a, int b);//主程A给写具体算法者B的一个协议。
  26.  
  27. static void Main(string[] args)
  28. {
  29. int sum = ToCaluation(, ,ToAdd );
  30. Console.WriteLine("计算结果" + sum);
  31. Console.ReadKey();
  32.  
  33. }
  34.  
  35. //2.写一个计算类。给出参数和操作所用的
  36. public static int ToCaluation(int a, int b, Del_CaluationCallback del) //这个Del_CaluationCallback就是我们所说的回调函数。相当于一个占位符。他没有具体实现方法。实现什么功能只需要写符合这个占位符规则的方法传入即可。
  37. {
  38. return del(a,b);
  39. }
  40.  
  41. //3.以下是程序员B写的具体执行方法。可以有多个
  42. public static int ToAdd(int a, int b) //加法
  43. {
  44. int sum = a + b;
  45. return sum;
  46. }
  47.  
  48. public int ToSubtraction(int a, int b) //减法
  49. {
  50. int res = a - b;
  51. return res;
  52. }
  53.  
  54. }
  55. }

C# 一个帮您理解回调函数的例子(新手必看)的更多相关文章

  1. js 回调函数小例子

    js 回调函数小例子 <script> //将函数作为另一个函数的参数 function test1(){ alert("我是test1"); } function t ...

  2. 基于委托的C#异步编程的一个小例子 带有回调函数的例子

    我创建的是一个winform测试项目:界面如下: 设置: 下面是代码: using System; using System.Collections.Generic; using System.Com ...

  3. 一个简单的java回调函数的实现

    回调函数 回调函数涉及的3个函数 登记回调函数 回调函数 响应回调函数 简单的解释 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话.过了几天店里有货了,店员就打了你的电话,然 ...

  4. js 彻底理解回调函数

    一.前奏 在谈回调函数之前,先看下下面两段代码: 不妨猜测一下代码的结果. function say (value) { alert(value); } alert(say); alert(say(' ...

  5. 一个简单的jQuery回调函数例子

    jQuery回调函数简单使用 比如说,我们想要点击某个按钮后触发事件, 先把一些指定内容给隐藏掉, 然后跳出相关信息的对话框. 如果使用普通的方法, 不用回调函数的话, 会有怎么样的效果呢? 效果是先 ...

  6. js的回调函数 一些例子

    这边用bootstrap 3.0的  上传控件做例子 下面是上传控件的一段完整的 js 操作 代码. <!-- 上传缩略图控件配置 --><script> // 定义这四个全局 ...

  7. 转:Delphi 回调函数及例子

    http://anony3721.blog.163.com/blog/static/5119742010866050589/ { http://anony3721.blog.163.com/blog/ ...

  8. C#跨窗体调用控件(委托回调函数使用例子)

    问题: 有两个窗体,FORM1(含一个label控件,一个名为显示form2的button控件)和FORM2(含一个button控件).启动时,FORM1中点击button控件显示form2使FORM ...

  9. PHP常用180函数总结【初学者必看】

    数学函数 1.abs(): 求绝对值 <span style="font-size: 14px;">$abs = abs(-4.2); //4.2<br>& ...

随机推荐

  1. Redis(七):set/sadd/sismember/sinter/sdiffstore 命令源码解析

    上两篇我们讲了hash和list数据类型相关的主要实现方法,同时加上前面对框架服务和string相关的功能介绍,已揭开了大部分redis的实用面纱. 现在还剩下两种数据类型: set, zset. 本 ...

  2. php--->php 缓冲区 buffer 原理

    php 缓冲区 buffer 原理 1.缓冲流程 从php脚本echo(print.print_r...)内容之后,是如何显示给用户的呢,下面看看流程 echo.print => php out ...

  3. android开发实战-记账本APP(二)

    继昨天的开发,继续完成今天的内容. (一)开始构建一些业务逻辑,开始构建记账本的添加一笔记账的功能. ①对fab按钮的click时间进行修改,创建一个AlertDialog.Builder对象,因此我 ...

  4. Spring(四)核心容器 - BeanDefinition 解析

    前言 在上篇文章中,我们讨论了 refresh 的前四个方法,主要是对 ApplicationContext 上下文启动做一些准备工作.原计划是对接下来的 invokeBeanFactoryPostP ...

  5. 高阶函数及 map、reduce、filter 的实现

    博客地址:https://ainyi.com/85 2020 开年国家经历了不少困难,最为凶猛的局势就是新型冠状病毒的蔓延,国务院最终决定春节假期延长至==2 月 2 号==:公司决定 3 - 7 号 ...

  6. Git详解之分布式应用

    前言 为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库.经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令.接下来,我们要学习下如何利用 Git ...

  7. 外网通过frp进行windows远程文件共享

    需求 远程访问位于内网中的文件.例如,家里,公司内. 所需技术 frp windows文件共享 具有公网地址的服务器一台 实现过程 windows文件共享,首先自己在局域网内实现.这不是本文重点. 公 ...

  8. TS 原理详细解读(5)语法2-语法解析

    在上一节介绍了语法树的结构,本节则介绍如何解析标记组成语法树. 对应的源码位于 src/compiler/parser.ts. 入口函数 要解析一份源码,输入当然是源码内容(字符串),同时还提供路径( ...

  9. Unreal Engine 4 蓝图完全学习教程(三)—— 节点的基本知识

    Ⅰ.节点的种类 ①标题:在节点的上方显示着节点的标题,标题部分会根据节点类型显示不同的颜色. ②输入:用于从其他节点接收数据以获取必要的数值. ③输出:将这个节点计算出结果用于传递数值到其他节点. ( ...

  10. C++ ABI之名字改编(以Qt为例)

    在C++中,由于重载等技术的存在,编译器要将函数.结构体.类等等的信息传递给链接器,就不能像C语言那样简单地通过函数名来完成,它需要提供额外的参数信息,而还要和C语言共用链接器,这就需要用到名字改编( ...