C# 一个帮您理解回调函数的例子(新手必看)
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# 一个帮您理解回调函数的例子(新手必看)的更多相关文章
- js 回调函数小例子
js 回调函数小例子 <script> //将函数作为另一个函数的参数 function test1(){ alert("我是test1"); } function t ...
- 基于委托的C#异步编程的一个小例子 带有回调函数的例子
我创建的是一个winform测试项目:界面如下: 设置: 下面是代码: using System; using System.Collections.Generic; using System.Com ...
- 一个简单的java回调函数的实现
回调函数 回调函数涉及的3个函数 登记回调函数 回调函数 响应回调函数 简单的解释 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话.过了几天店里有货了,店员就打了你的电话,然 ...
- js 彻底理解回调函数
一.前奏 在谈回调函数之前,先看下下面两段代码: 不妨猜测一下代码的结果. function say (value) { alert(value); } alert(say); alert(say(' ...
- 一个简单的jQuery回调函数例子
jQuery回调函数简单使用 比如说,我们想要点击某个按钮后触发事件, 先把一些指定内容给隐藏掉, 然后跳出相关信息的对话框. 如果使用普通的方法, 不用回调函数的话, 会有怎么样的效果呢? 效果是先 ...
- js的回调函数 一些例子
这边用bootstrap 3.0的 上传控件做例子 下面是上传控件的一段完整的 js 操作 代码. <!-- 上传缩略图控件配置 --><script> // 定义这四个全局 ...
- 转:Delphi 回调函数及例子
http://anony3721.blog.163.com/blog/static/5119742010866050589/ { http://anony3721.blog.163.com/blog/ ...
- C#跨窗体调用控件(委托回调函数使用例子)
问题: 有两个窗体,FORM1(含一个label控件,一个名为显示form2的button控件)和FORM2(含一个button控件).启动时,FORM1中点击button控件显示form2使FORM ...
- PHP常用180函数总结【初学者必看】
数学函数 1.abs(): 求绝对值 <span style="font-size: 14px;">$abs = abs(-4.2); //4.2<br>& ...
随机推荐
- 机器学习环境配置系列六之jupyter notebook远程访问
jupyter运行后只能在本机运行,如果部署在服务器上,大家都希望可以远程录入地址进行访问,这篇文章就是解决这个远程访问的问题.几个基本的命令就可以搞定,然后就可以愉快的玩耍了. 1.安装jupyte ...
- web api 的 安全 认证问题 , 对外开放 的 时候 需要考虑到安全的问题
关于 OWIN OAuth , web api的认证,全局验证, 安全方面的验证 有必要 去 自己捣鼓一下.
- 「雅礼集训 2017 Day2」棋盘游戏
祝各位圣诞后快乐(逃) 题目传送门 分析: 首先棋盘上的路径构成的图是一张二分图 那么对于一个二分图,先求出最大匹配,先手如果走到关键匹配点,只要后手顺着匹配边走,由于不再会出现增广路径,所以走到最后 ...
- Client API Object Model - Grid Context(3.3)
Grids 网格,以表格的形式显示数据, 网格可以跨越整个form,也可以是form中的一项. 被称为子网格(subgrid). grid有两种, 一种是read-only grid, 另一种是edi ...
- SelectiveSearchCodeIJCV遇到First two input arguments should have the same 2D dimension
在windows 10+visual studio环境下运行SelectiveSearchCodeIJCV中的demo.m难免会出现下列错误 ----------------------- if(~e ...
- git hub安装
windows下GitHub的安装.配置以及项目的上传过程详细介绍 阅读目录 概要 操作必备 GitHub的安装 Git的初始配置 本地Git与远程GitHub连接的建立 将本地项目上传到GitHub ...
- springboot mybatis 多数据源配置支持切换以及一些坑
一 添加每个数据源的config配置,单个直接默认,多个需要显示写出来 @Configuration @MapperScan(basePackages ="com.zhuzher.*.map ...
- 从O365中获取users到D365中 使用flow
在我上篇blog中讲解到了怎么用代码把O365 users 获取到D365中. 从O365中获取users到D365中 这几天一直在研究flow, 发现flow可以更简单的完成这个功能. 一开始没有考 ...
- Nutz-使用Jspview跳转页面报404
案例 今天在前段页面提交登陆请求时,后台报404,找不到对应的页面,但是该jsp已经放在了正确的目录下,并且请求地址也没错,就是返回对应jsp的时候找不到该文件 解决方案 经排查,原来犯了个低级错误, ...
- 04讲基础篇:经常说的CPU上下文切换是什么意思(下)
具体分析 自愿上下文切换变多了,说明进程都在等待资源,有可能发生了 I/O 等其他问题: 非自愿上下文切换变多了,说明进程都在被强制调度,也就是都在争抢 CPU,说明 CPU 的确成了瓶颈: 中断次数 ...