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>& ...
随机推荐
- Linux系统实时数据同步inotify+rsync
一.inotify简介 inotify是Linux内核的一个功能,它能监控文件系统的变化,比如删除.读.写和卸载等操作.它监控到这些事件的发生后会默认往标准输出打印事件信息.要使用inotify,Li ...
- openresty http
openresty http openresty默认没有提供http客户端,需要第三方提供插件. 下载方式: wget https://raw.githubusercontent.com/pintsi ...
- tomcat梳理
tomcat梳理 Tomcat的缺省端口是多少,怎么修改? 默认接口是8080 修改 1)找到Tomcat目录下的conf文件夹 2)进入conf文件夹里面找到server.xml文件 3)打开ser ...
- mybatis入门案例自定义实现
mybatis入门案例自定义实现 一.需要实现的类和接口 public static void main(String[] args) throws Exception{ //1.读取配置文件 Inp ...
- 虚拟机ubuntu系统怎么添加 VMware tools
首先弹出光盘 然后安装 点击安装VMware tools 然后进入光盘 打开VMware tools 文件夹 将解压文件拉到桌面上 打开桌面上的文件夹 不选中文件 然后键入下面的内容 输入密码 输入y ...
- SystemVerilog搭建APB_I2C IP 层次化验证平台
一.前言 近期疫情严重,身为社畜的我只能在家中继续钻研技术了.之前写过一篇关于搭建FIFO验证平台的博文,利用SV的OOP特性对FIFO进行初步验证,但有很多不足之处,比如结构不够规范.验证组件类不独 ...
- 学习记录一(Python算数运算符与if语句)
从网上找到一个Python的学习视频,之前的环境都装好了,今天看的就是算术运算符和变量的命名 其中Python的除法直接就是 / %用于求余 其中还可以进行幂运算** 例如2 ** 3 = 8 ...
- High一下!
代码: <a title="把这个链接拖到你的Chrome收藏夹工具栏中" href='javascript:(function() { function c() { var ...
- 一些可以查询IP地理位置、身份证所在地、手机归属地的接口
查询IP http://ip.dnsexit.com/ 新浪的IP查询接口: 新浪的:http://counter.sina.com.cn/ip?ip=IP地址 返回Js数据,感觉不是很精确,可以把问 ...
- 机器学习总结-sklearn参数解释
本文转自:lytforgood 机器学习总结-sklearn参数解释 实验数据集选取: 1分类数据选取 load_iris 鸢尾花数据集 from sklearn.datasets import lo ...