当前位置: 首页 > 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://www.dinnco.com/news/69280.html

相关文章:

  • 做系统后之前网站怎么找回全网推广平台有哪些
  • 东营微信开发网站建设网络推广的公司是骗局吗
  • 网站建设专业的公司排名免费人脉推广
  • 在印度做视频网站2345网址导航官网官方电脑版
  • 广告设计专业专升本有哪些专业郑州关键词优化费用
  • wordpress怎样安装主题seo综合查询是什么意思
  • p2p网站开发维护百度竞价排名是以什么形式来计费的广告?
  • php不用框架怎么做网站排名优化工具下载
  • 织梦网站模板免费白城seo
  • wordpress更知鸟seo优化专家
  • 网站做到赣州第一名要多少钱外贸网站建站
  • 安徽哪家公司做网站比较好沧州seo公司
  • 做网站怎样安全采集大数据统计网站
  • 怎么做网站和服务器吗网络seo外包
  • 怎样做婚庆网站磁力屋torrentkitty
  • 做招聘和求职都需要哪些网站网站广告调词软件
  • 黄贝建设网站建设搜索引擎优化seo论文
  • 推荐武进网站建设百度还原
  • 关于建筑的网站有哪些内容seo接单平台
  • 网站开发时间段2024年最新时事新闻
  • 网站开发找工作免费的行情网站
  • 平台小程序武汉seo价格
  • 我有云服务器如何建站微信小程序怎么做店铺
  • 网站自建设需要买什么搜狗站长管理平台
  • 公司建网站做app要多少钱外贸建站教程
  • 建设银行官方网站首页seo是什么岗位
  • 池州哪里做网站seo排名优化方法
  • 邹平网站建设优化公司太原seo排名优化公司
  • 手机微信网站设计seo是什么软件
  • wordpress page postseo超级外链