这些天,开发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();
}

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

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

如果改用委托呢?怎样写? 那我们可以使用委托的关键词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();
};

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

在较高版本的.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();
};

在视图中应用此方法:

参考例子,学习Func<T, TResult>委托的更多相关文章

  1. Func<T, TResult> 委托

    Func<T, TResult> 委托 Visual Studio 2008   命名空间:  System程序集:  System.Core(在 System.Core.dll 中) 语 ...

  2. Func<T, TResult> 委托的由来和调用和好处(为了高大上,为了白富美)

    Func<T, TResult>是系统的内置委托的中最常用的一个.特点就是必须有一个返回值.(func委托有多个重载,所有重载的最后一个参数就是返回值的类型,前面的是参数类型).注:没有返 ...

  3. Expression<Func<T,TResult>>和Func<T,TResult>

    1.Expression<Func<T,TResult>>是表达式 //使用LambdaExpression构建表达式树 Expression<Func<int, ...

  4. func 和action 委托的使用

    func 可以带返回值,action  不带返回值 平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委 ...

  5. Func<T,TResult>泛型委托

    描述: 封装一个具有一个参数并返回TResult参数指定的类型值的方法. 语法: public delegate TResult Func<T,TResult>(T arg); 参数类型: ...

  6. C# 笔记 Func<TResult> 委托、Action<T> 委托

    https://blog.csdn.net/wanglui1990/article/details/79303894 Func<ΤResult> 委托:代理(delegate)一个返回类型 ...

  7. 使用Func<T1, T2, TResult> 委托返回匿名对象

    Func<T1, T2, TResult> 委托 封装一个具有两个参数并返回 TResult 参数指定的类型值的方法. 语法 public delegate TResult Func< ...

  8. 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  9. 数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

随机推荐

  1. (转)Babel-现在开始使用 ES6

    在 2 月 20 号 ECMAScript 第六版就正式推出了,这门语言一直保持稳定快速的发展而且新功能也在慢慢被现在主流的 JavaScript 引擎所接受.不过要想在浏览器端或者 Node 端直接 ...

  2. java那些小事---用偶数做判断,不要用基数做判断

          今天做项目遇到这样一个奇葩问题:我们先看如下代码: int ftcs = dealFtcs(ftcs); if(ftcs % 2 == 1){ //奇数 /* * 处理..... */ } ...

  3. Flex contextMenu

    没想到再这里也要跌跌撞撞. 这个东西我很久之前就懂了的啊! 最开始是这么写的: private function init():void { var contextMenu:ContextMenu = ...

  4. Repeater绑定数组并显示其值

    web开发中,尤其是对于数据展示,不得不说Repeater是一个万能的控件,而且使用也很方便. 在ASP.NET中将数组绑定到Repeater中请问如何在Repeater前台页面中显示该数组的值? s ...

  5. thinkphp里的session、cookie方法

    thinkphp里,对于session和cookie的操作,不管是存值.获取.删除,均只有一个方法.现分享出来,供大家参考参考. /** * session管理函数 * @param string|a ...

  6. [Java面试九]脚本语言知识总结.

    核心内容概述 1.JavaScript加强,涉及到ECMAScript语法.BOM对象.DOM对象以及事件. 2.Ajax传统编程. 3.jQuery框架,九种选择器为核心学习内容 4.JQuery ...

  7. atitit。企业的价值观 员工第一 vs 客户第一.docx

    atitit.企业的价值观 员工第一 vs 客户第一.docx 1. 客户第一的说法是错误的,员工优先是正确的,理念与价值观1 1.1. 任何一个组织,应该组织成员优先级要比外部成员高才对1 1.2. ...

  8. JS---DOM操作有哪一些

    一  DOM对象有哪一些 1   windos 1.属性  opener 2.方法  open(),close() 例:<script langguage="javascript&qu ...

  9. Python下划线与命名规范

    Python下划线与命名规范 先看结论,节省只想知道答案你的宝贵时间: _xxx 不能用于from module import * 以单下划线开头的表示的是protected类型的变量.即保护类型只能 ...

  10. 使用__slots__限定实例的成员列表

    使用__slots__限定实例的成员列表 默认情况下,python对象队象的每个实例(instance)都会有一个字典来存储该实例的属性,这样做的好处在于运行时期每个对象可以任意设置新的属性.而相对应 ...