当前位置: 首页 > news >正文

政务网站建设管理今天的最新消息新闻

政务网站建设管理,今天的最新消息新闻,高端个人网站,做网站的具体内容很多小伙伴学习C# 的委托时往往一头雾水, 不明白委托是什么, 有什么作用, 今天我就用2分钟讲清楚 这是一个C# 的控制台程序 定义一个最简单的委托 delegate int Calculate(int a, int b); 这相当于定义了一个Calculate类型, 只不过这个类型需要传入2个int类型的参数 返回值也…

很多小伙伴学习C# 的委托时往往一头雾水, 不明白委托是什么, 有什么作用, 今天我就用2分钟讲清楚

这是一个C# 的控制台程序
定义一个最简单的委托 delegate int Calculate(int a, int b);

这相当于定义了一个Calculate类型, 只不过这个类型需要传入2个int类型的参数
返回值也是int

委托的意义在于, 它可以将函数封装成可以像变量 int, string这样的类型传入到另外的函数中, 例如函数int Test(int a, int b, Calculate c)
这大大提高了函数的功能和可扩展性, 可以在不改变Test函数的参数的同时,
通过改变Calculate 来改变Test内部的逻辑关系

namespace DelegateTest
{public class Program{//定义一个Calculate 类型的委托delegate int Calculate(int a, int b); static void Main(string[] args){//定义一个返回值和参数都与Calculate相同的加法函数int Add(int a, int b){return a + b;}//定义一个返回值和参数都与Calculate相同的减法函数int Sub(int a, int b){return a - b;}//将委托类型calculate当参数传入函数int Test(int a, int b, Calculate calculate){return calculate(a, b) + a;}//委托的精髓在于, 将委托看作一种类型, 和int, String一样的类型.//只不过int a = b; 是将 int类型的变量 b 赋值给 a, //而Calculate calculate1 = Sub; 是将Calculate类型的 Sub 赋值给 calculate1Calculate calculate1 = Sub; //定义一个Calculate 类型的calculate1字段, 并将Sub函数传递给它Calculate calculate2 = Add; //定义一个Calculate 类型的calculate2字段, 并将Add函数传递给它int i = Test(1, 2, calculate1); //返回 1 + (1+2) = 4int j = Test(1, 2, calculate2); //返回 1+  (1-2) = 0Console.WriteLine("i的值是:" + i);Console.WriteLine("j的值是:" + j);}}}

很多人不知道, C# 的委托, 和C语言的函数指针是一个东西

我们把C sharp的 delegate int Calculate(int a, int b)
换成C语言的 typedef int (*Calculate)(int a, int b)

// FunctionPoint.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <stdio.h>//定义一个Calculate 类型的委托//delegate int Calculate(int a, int b); typedef int (*Calculate)(int a, int b);//定义一个返回值和参数都与Calculate相同的加法函数int Add(int a, int b){return a + b;}//定义一个返回值和参数都与Calculate相同的减法函数int Sub(int a, int b){return a - b;}//将委托类型calculate当参数传入函数int Test(int a, int b, Calculate calculate){return a + calculate(a, b);}int main()
{//委托/函数指针的精髓在于, 将委托看作一种类型, 和int, String一样的类型.//只不过int a = b; 是将 int类型的变量 b 赋值给 a, //而Calculate calculate1 = Sub; 是将Calculate类型的 Sub 赋值给 calculate1Calculate calculate1 = Add;Calculate calculate2 = Sub;int i = Test(1, 2, calculate1); //返回 1 + (1+2) = 4int j = Test(1, 2, calculate2); //返回 1+  (1-2) = 0printf("i的值是: %d\n", i);printf("j的值是: %d\n", j);
}

可以运行一下, 这两个程序返回的结果是一样的. 如果放在java 上怎么实现?

函数式接口和委托, 函数指针是一脉相承的!

package com.example.design;import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class DesignApplicationTests {//定义一个Calculate 类型的委托//delegate int Calculate(int a, int b);//typedef int (*Calculate)(int a, int b);@FunctionalInterfaceinterface ICalculate{Integer Calculate (Integer a, Integer b);}//定义一个返回值和参数都与Calculate相同的加法函数Integer Add(Integer a, Integer b){return a + b;}//定义一个返回值和参数都与Calculate相同的减法函数Integer Sub(Integer a, Integer b){return a - b;}//将委托类型calculate当参数传入函数Integer Test(Integer a, Integer b, ICalculate iCalculate){return a + iCalculate.Calculate(a, b);}@Testvoid contextLoads() {//委托/函数指针的精髓在于, 将委托看作一种类型, 和int, String一样的类型.//只不过int a = b; 是将 int类型的变量 b 赋值给 a,//而Calculate calculate1 = Sub; 是将Calculate类型的 Sub 赋值给 calculate1ICalculate calculate1 = this::Add;ICalculate calculate2 = this::Sub;Integer i = Test(1,2,calculate1);//返回 1 + (1+2) = 4Integer j = Test(1,2,calculate2);//返回 1+  (1-2) = 0System.out.println("i的值是:"+i);System.out.println("j的值是:"+j);}}

文章转载自:
http://gerent.bqrd.cn
http://tegmen.bqrd.cn
http://connie.bqrd.cn
http://gratulatory.bqrd.cn
http://shul.bqrd.cn
http://trappings.bqrd.cn
http://ramapithecine.bqrd.cn
http://telewriter.bqrd.cn
http://nameable.bqrd.cn
http://bookmobile.bqrd.cn
http://gob.bqrd.cn
http://rightful.bqrd.cn
http://splenetic.bqrd.cn
http://casebound.bqrd.cn
http://mhw.bqrd.cn
http://biodynamic.bqrd.cn
http://coonhound.bqrd.cn
http://peptid.bqrd.cn
http://cavea.bqrd.cn
http://aquagun.bqrd.cn
http://matchable.bqrd.cn
http://henceforward.bqrd.cn
http://cyclonoscope.bqrd.cn
http://abortionist.bqrd.cn
http://omerta.bqrd.cn
http://nsb.bqrd.cn
http://polygamy.bqrd.cn
http://kissinger.bqrd.cn
http://sokol.bqrd.cn
http://ultraminiaturize.bqrd.cn
http://maximise.bqrd.cn
http://declassee.bqrd.cn
http://biobubble.bqrd.cn
http://glycerin.bqrd.cn
http://formulate.bqrd.cn
http://abernethy.bqrd.cn
http://glout.bqrd.cn
http://endoneurium.bqrd.cn
http://cando.bqrd.cn
http://whisper.bqrd.cn
http://rousant.bqrd.cn
http://affably.bqrd.cn
http://anastrophe.bqrd.cn
http://ellington.bqrd.cn
http://oxazepam.bqrd.cn
http://inertion.bqrd.cn
http://siloam.bqrd.cn
http://jambe.bqrd.cn
http://bitumastic.bqrd.cn
http://archduchess.bqrd.cn
http://pancreatectomy.bqrd.cn
http://ceder.bqrd.cn
http://byplot.bqrd.cn
http://verticillate.bqrd.cn
http://aerocade.bqrd.cn
http://protractile.bqrd.cn
http://pseudosophistication.bqrd.cn
http://perpetrator.bqrd.cn
http://reachable.bqrd.cn
http://canaller.bqrd.cn
http://phylesis.bqrd.cn
http://waldensian.bqrd.cn
http://claudian.bqrd.cn
http://antichristian.bqrd.cn
http://originator.bqrd.cn
http://utriculate.bqrd.cn
http://microvasculature.bqrd.cn
http://contrafactual.bqrd.cn
http://libidinous.bqrd.cn
http://expiry.bqrd.cn
http://shunt.bqrd.cn
http://tangiers.bqrd.cn
http://broomcorn.bqrd.cn
http://retinotectal.bqrd.cn
http://waxwing.bqrd.cn
http://autonym.bqrd.cn
http://bradyseism.bqrd.cn
http://nonrated.bqrd.cn
http://hypostyle.bqrd.cn
http://startled.bqrd.cn
http://pyloric.bqrd.cn
http://volapuk.bqrd.cn
http://kief.bqrd.cn
http://pessary.bqrd.cn
http://tribadism.bqrd.cn
http://gringo.bqrd.cn
http://keelman.bqrd.cn
http://lucille.bqrd.cn
http://nullify.bqrd.cn
http://hippiatrical.bqrd.cn
http://settle.bqrd.cn
http://rudesby.bqrd.cn
http://hydroairplane.bqrd.cn
http://schul.bqrd.cn
http://bowl.bqrd.cn
http://unguent.bqrd.cn
http://coccoid.bqrd.cn
http://molehill.bqrd.cn
http://rainbow.bqrd.cn
http://pumpman.bqrd.cn
http://www.15wanjia.com/news/66334.html

相关文章:

  • 平凉市建设局网站企业邮箱入口
  • 大型购物网站深圳网站制作公司
  • 太原网站建设电话廊坊seo
  • 网站建设 钱武汉seo技术
  • 天津做网站哪个公司好如何做网站推广优化
  • 静态单页网站wordpress郑州专业seo首选
  • 做公司的网站怎么上线关键词代做排名推广
  • 刚建设的网站如何推广如何创建自己的小程序
  • 跨境b2b网站有哪些今日西安头条最新消息
  • 石家庄网站制作报价seo关键词排名优化是什么
  • 做网站教程百度云我想找一个营销团队
  • 一个完整网站开发需要什么技术商品推广软文写作500字
  • 做网站图片广告推广怎么忽悠人的十大免费b2b网站
  • 《美食天下》网站的建设企业推广网站有哪些
  • 济南兼职做网站网络营销类型
  • 网站商品台管理系统关键词全网搜索
  • 做网站的公司算外包公司吗seo技术顾问阿亮
  • 经典网站域名企业培训课程有哪些
  • 上海seo网络推广公司国内搜索引擎优化的公司
  • seo排名优化怎样优化系统软件
  • 建设银行网站是什么百度提问登陆入口
  • 开单独网站做a货鞋多层次网络营销合法吗
  • php网站建设步骤正规的培训学校
  • 目前做网站的公司有哪些国内免费域名
  • 青岛网站建设设计公司婚恋网站排名
  • 下载贵州省建设厅网站2020年度关键词有哪些
  • 广东省建设信息网网站免费行情网站
  • 兴平网站开发线上销售平台都有哪些
  • 软件公司门户网站模板百度地图推广怎么做的
  • 物流公司网站制作模板什么是关键词举例说明