为了账号安全,请及时绑定邮箱和手机立即绑定

参考例子,学习Func<T, TResult>委托

标签:
JavaScript

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

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

这时,我们会写一个方法:

 

source code:

 public string ConnectToString(List<int> 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<int> listInt);


 


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

 


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


 

source code:

public DelegateConnectToString ConnectToString1 = delegate (List<int> 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<List<int>, string> ConnectToString2 = delegate (List<int> listInt)        {            StringBuilder _sb = new StringBuilder();            listInt.ForEach(delegate (int i)            {                _sb.Append(i.ToString());            });            return _sb.ToString();        };

View Code


在视图中应用此方法:


 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消