using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 回调函数Demo
{ /* 回调函数的作用,1.分装;2.异步;3.扩展具体方法。
* 通过一个委托给出实现功能模块扫遵循的协议:参数和返回类型,而这个委托我们就叫做回电函数,本质上就是一个委托。
* 回调函数只是一个标准,一个占位符。而具体工作的方法只要是满足回调函数(也就是委托)给出的协议即可。
* 可见一个回调函数(委托)可以有多个具体方法。这也满足多播委托的特点
*
* 本例我们通过回调函数实现2个数的运算
* 比如说主程A写主模块,而程序员B写2个数之间的操作,比如+,-,*,/,拼接等等。
* 而回调函数就是给出A,给B的一个协议。我不管你具体实现什么运算,也不管你怎么实现。
* 我只需要告诉你。输入2个int数 ,给我返回一个int类型的运算结果
*
* 相关知识点回顾:
* 1、在其他其他平级空间中使用必须是静态方法,否则就将这个方法写到一个类里,再在使用的地方实例化这个类
*/
class Program
{
//1.定义一个委托,相当于定义了一个协议参数,返回值的协议,做什么事怎么做A不关心
public delegate int Del_CaluationCallback(int a, int b);//主程A给写具体算法者B的一个协议。 static void Main(string[] args)
{
int sum = ToCaluation(, ,ToAdd );
Console.WriteLine("计算结果" + sum);
Console.ReadKey(); } //2.写一个计算类。给出参数和操作所用的
public static int ToCaluation(int a, int b, Del_CaluationCallback del) //这个Del_CaluationCallback就是我们所说的回调函数。相当于一个占位符。他没有具体实现方法。实现什么功能只需要写符合这个占位符规则的方法传入即可。
{
return del(a,b);
} //3.以下是程序员B写的具体执行方法。可以有多个
public static int ToAdd(int a, int b) //加法
{
int sum = a + b;
return sum;
} public int ToSubtraction(int a, int b) //减法
{
int res = a - b;
return res;
} }
}

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. 机器学习回顾篇(15):集成学习之GDBT

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  2. centOS7.1安装nginx与可能遇见的问题

    一,安装nginx(系统:CentOS7.1) 1.Nginx下载地址:http://nginx.org/download/nginx-1.6.2.tar.gz [root@linux src]# c ...

  3. 「 Android开发 」开启第一个App应用

    每天进步一丢丢,连接梦与想 无论什么时候,永远不要以为自己知道一切   -巴普洛夫 最近玩了下Android,但遇到了一些坑,浪费了很多的时间,在此记录一下,你若是遇到了就知道怎么解决了 PS:建议使 ...

  4. GeoGebra学习-lesson1

    我曾经想过学习数学的时候总觉得不太直观,希望通过直观的图形来直观的学习数学.庆幸的是,在B站看视频时看到了妈咪叔使用了这款数学软件,很好用的样子.就去简单的了解了一下,下面是摘抄自<Geogeb ...

  5. CSS动效集锦,视觉魔法的碰撞与融合(三)

    本文讲述的原理和相关demo 扇形DIV的使用——实现雷达扫描图 DIV环形布局—实现loading圈 动画的向量合成—实现抛物线动画 无限滚动动画—实现跑马灯效果 perspective和trans ...

  6. Java解析XML文件的方式

    在项目里,我们往往会把一些配置信息放到xml文件里,或者各部门间会通过xml文件来交换业务数据,所以有时候我们会遇到“解析xml文件”的需求.一般来讲,有基于DOM树和SAX的两种解析xml文件的方式 ...

  7. 简单实现Android手机“全局可调试”(ro.debuggable = 1)的方法【锤子坚果3】

    在Android真机上调试程序有一个前提,就是这个apk包必须有 debuggable=true 的属性才行.而除了自己开发的apk能够控制打包属性之外,其他的程序发行之后显然不会设这个值为 true ...

  8. CSS-13-块级元素和行内元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 在python3 encode和decode 的使用

    说这个问题之前必须的介绍关于编码的在我们这的发展: 首先电脑能识别的最初的语言是二进制 ---010101这种 然后在是我们知道的ASSIC码 再过了就是 gb2312----------->g ...

  10. AcWing 787.归并排序

    AcWing 787.归并排序 题目描述 给定你一个长度为n的整数数列. 请你使用归并排序对这个数列按照从小到大进行排序. 并将排好序的数列按顺序输出. 输入格式 输入共两行,第一行包含整数 n. 第 ...