tnblog
首页
视频
资源
登录
不帅~~但是很暖心.....
排名
14
文章
75
粉丝
21
评论
43
申请别的接口数据(网络接口)
是伍尚金哇 : 敲一夜代码,流下两三行泪水,掏空四肢五体,六杯白开水七桶泡面
mui框架-移动端跳转以及传值的简单方法(修改解决方法)
是伍尚金哇 : 测试了 可以直接在 extras: { userid:'10' //自定义扩展...
数据库的varchar和nvarchar的区别
是伍尚金哇 : 没人看 自己看一个 温习一下
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

C#委托_Action和Func (方法可以当作一个参数传递)

12108人阅读 2019/9/29 11:16 总访问:376248 评论:1 收藏:1 手机
分类: .net

大家好,好久不见哦!前段时间因为忘记了帐号了没有更新了哈哈!

今天普及一下自己学到的新花样,在C#里面方法居然可以当参数传递?好奇怪是不是...

首先这个定义成为委托   OK废话不多说 上代码


我们定义一个类MyTime 里面添加一个方法

  1. //定义一个私有方法,输出一句话
  2.         private void nameHappy(string name)
  3.         {
  4.             Console.WriteLine(name+"国庆快乐");
  5.         }

然后再定义一个无返回值有参数的方法Excute

  1. public void Excute(string name)
  2.         {
  3.             nameHappy(name);
  4.         }

上面的Excute就是委托的方法,相当于用户委托这个方法执行其他任意的方法,里面可以做一些业务逻辑操作等等..

然后我们在主函数(Main())入口执行操作,如下代码:

  1. static void Main(string[] args)
  2.         {
  3.             MyTime mytime = new MyTime();
  4.             Action<string> acction = mytime.Excute;
  5.             acction("赖总");
  6.         }

上面如下截图解释:

运行代码:


上面所说的是没有返回值委托方法 使用Action委托


下面我们来看一下如果委托方法有参数呢?怎么办

上代码

在MyTime里定义一个Num私有方法

  1. private int Num(int num1, int num2)
  2.         {
  3.             return num1 + num2;
  4.         }


委托方法GetNum方法返回计算结果:

  1. public int  GetNum(int num1, int num2)
  2.         {
  3.             return Num(num1, num2);
  4.         }


然后再主函数入口


  1. static void Main(string[] args)
  2.         {
  3.             MyTime mytime = new MyTime();
  4.             //Action<string, int> acction = mytime.Excute;
  5.             //acction("赖总", 70);
  6.             Func<intintint> func = mytime.GetNum;
  7.             int result = func(23);
  8.             Console.WriteLine("计算结果为:" + result);
  9.             //Action<int, int> action_time = mytime.timeout;
  10.             //action_time(70, 500);
  11.             
  12.         }


上面代码如截图解释:


运行代码:


这是我对于委托的理解  如果有高见 欢迎指导哦!

作用:委托可以在委托方法里做一些逻辑操作,提高效率,简化代码...

但是对于小编来说还是要花点小时间来理解这个委托这种东西哈 哈哈

OK本期结束,下期再见 谢谢浏览阅读....

评价

风清月

2019/10/2 23:27:36

厉害了!后面的小姐姐图片不错收藏一波,斜眼笑

Css弹性盒子,flex布局

css弹性盒子由于版本不同浏览器问题造成了一些不同的写法display:flexbox;在google浏览器中如果使用下面的写法就不行displa...

Css图片文字对齐问题

文字和图片写到一排经常会出现对不齐的问题 这样感觉图片会上来一点没有和文字对齐,如下图 但是如果修改下html结...

GitHub 上传项目

补充简化方法:登录git创建项目--&gt;拉取刚刚创建的项目--&gt;复制需要的代码进去--&gt;上传提交即可先拉取项目在上传代码...

NET Core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

Windows平台分布式架构实践 - 负载均衡

原文地址: https://www.cnblogs.com/atree/p/windows_loadbalancer.html 概述  最近.NET的世界开始闹腾了,微软官方终...

Css实现简单矩形对话框

在前端做项目时,我们可能会遇到写对话框的需求,这次做视频会议页面就遇到了,记录下日后有个参照。//网页部分 &lt;divcla...

CAPS.NET 保存base64位格式的图片

publicvoidUpload() { //取出图片对应的base64位字符 stringimgBase=Request[&quot;imgBase&quot;]; //c#里边的base6...

使用OLEDB读取不同版本ExCel的连接字符串设置

使用OleBD读取excel的时候,excel不同的版本,连接字符串的写法也会不一样。///&lt;summary&gt; ///读取excel ///&lt;/su...

vs2017 对 COM 组件的调用返回了错误 HRESULT E_FAIL

vs2017添加引用报错 对 COM 组件的调用返回了错误 HRESULT E_FAIL 1.以管理员身份打开vs2017开发人员命令指示符 2...

分布式服务架构与微服务架构概念的区别与联系

分布式:分散压力。微服务:分散能力。当下理解分布式:不同模块部署在不同服务器上作用:分布式解决网站高并发带来问题集...

分布式-微服务-集群的区别

1.分布式将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区...

NPOI操作exCel 2007/2010版本

HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xlsXSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx先...

这样学英语三个月超过你过去学三年

本文作者三年间从四级勉强及格到高级口译笔试210,口试232。找工作面试时给其口试的老外考官听了一分钟就说你的英语不用考...

EasyUI弹窗批量修改Combogrid下拉框的值

JS方法//点击弹出批量修改框 UpdateLot:function(){ varrow=$(&quot;#dg&quot;).datagrid(&quot;getChecked&quot;); if(...

js与Controller中分割字符串的方法

js: varstr=OpenRule; varstrs=newArray(); strs=str.split(&quot;,&quot;); for(vari=0;i&lt;strs.length;i++){ $(&q...

如何修改CSS中存在的element.style内联样式

改腾讯地图的时候调整了下样式,发现样式一直存在问题,修改style里面的值,一点用都没有,html中这个值还找不到是在哪里出...
要超越过去与悲伤,用坚强和笑容去开拓明天。