博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
参考例子,学习Func<T, TResult>委托
阅读量:7092 次
发布时间:2019-06-28

本文共 1557 字,大约阅读时间需要 5 分钟。

这些天,开发ASP.NET MVC,其间有查找资料,发现一个全新的Func<T, TResult> 委托。让我们在开发时,节省与简化很多。

在开发过程中,我们需要把一个泛型List<int>,把所有整型int串连起来转换为一串字符串。
这时,我们会写一个方法:

 

source code:

public string ConnectToString(List
listInt) { StringBuilder _sb = new StringBuilder(); listInt.ForEach(delegate (int i) { _sb.Append(i.ToString()); }); return _sb.ToString(); }
View Code

在视图中,我们就可以应用这个方法:

 

呵呵,这是最普通的方法。

如果改用委托呢?怎样写? 那我们可以使用委托的关键词delegate来宣告一个方法,方法的参数就是List<int> :

public delegate string DelegateConnectToString(List
listInt);

 

在视图中,我们使用这个委托:

 

上面的方法,我们是按常规的写法,去new一个委托,下面我们大不必去new一个委托,直接使用一个匿名方法来替代:

 

source code:

public DelegateConnectToString ConnectToString1 = delegate (List
listInt) { StringBuilder _sb = new StringBuilder(); listInt.ForEach(delegate (int i) { _sb.Append(i.ToString()); }); return _sb.ToString(); };
View Code

在视图中,我们可以这样使用方法:

在较高版本的.NET Framework的,已经有一个Func<T, TResult>委托了,使用它不必你去宣告一个自定义的委托,如上的DelegateConnectToString(List<int> listInt)。

因此在写代码时,可以这样写法:

source code:

public Func
, string> ConnectToString2 = delegate (List
listInt) { StringBuilder _sb = new StringBuilder(); listInt.ForEach(delegate (int i) { _sb.Append(i.ToString()); }); return _sb.ToString(); };
View Code

在视图中应用此方法:

 

转载地址:http://ibiql.baihongyu.com/

你可能感兴趣的文章
【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成
查看>>
关于Patter类和Match类
查看>>
Linux下iptables的简介和自己的记录
查看>>
类的operator new与operator delete的重载
查看>>
tn文本分析语言(三):高级语法
查看>>
iOS:提示框(警告框)控件UIActionSheet的详解
查看>>
分析Linux内核创建一个新进程的过程【转】
查看>>
Web API应用架构设计分析(2)
查看>>
.NET插件系统之二——不实例化获取插件信息和可视化方法
查看>>
让asp.net默认的上传组件支持进度条反映
查看>>
EXTJS学习系列提高篇:第十一篇(转载)作者殷良胜,制作树形菜单之五
查看>>
从代码分析Android-Universal-Image-Loader的图片加载、显示流程
查看>>
阿里妈妈首次公开新一代自研智能检索模型 | WWW 2018论文解读
查看>>
使用Depth Texture
查看>>
第 9 章 PBX
查看>>
ylbtech-LanguageSamples-Porperties(属性)
查看>>
第 4 章 Music score
查看>>
架构设计目录
查看>>
Wind7外接显示器选择拓展模式后,鼠标只能往右移动才能切换到外接显示器上,不能修改切换方向...
查看>>
学习笔记: CSS3 鼠标悬停动画
查看>>