Func<T,TResult>的使用方法(转载)
2013-06-30 08:45
549 查看
public delegate TResult Func <T, TResult>(T arg)
这是一个委托方法,这个方法有一个参数T(T arg),比如int arg,string arg等等;一个返回值TResult; 要想让输入的参数arg返回TResult,则必须将一个带有T arg参数的方法用委托的方式赋值给Func方法;比如如下的方法就符合Func<string,int>这个委托的定义:
下面用一个比较详细的实例来说明这个方法的用法,其中会用到Lambda表达式(只是匿名函数的一种表达方式而已,不必大惊小怪):
定义委托:
在主函数可以这样来写:
其实这个委托方法的主要特点就是节省代码,如果有多个处理输入和输出的方法,直接将函数作为参数传进去就可以了,省去了反复调用的麻烦。
这是一个委托方法,这个方法有一个参数T(T arg),比如int arg,string arg等等;一个返回值TResult; 要想让输入的参数arg返回TResult,则必须将一个带有T arg参数的方法用委托的方式赋值给Func方法;比如如下的方法就符合Func<string,int>这个委托的定义:
private int GetAge(string age) { return Int32.Parse(age); }
下面用一个比较详细的实例来说明这个方法的用法,其中会用到Lambda表达式(只是匿名函数的一种表达方式而已,不必大惊小怪):
定义委托:
//这是一个计算年龄的方法 //输入一个字符串数组,其中的字符串分别经过指定的conveter委托方法的运算以后 //字符串值就变成了整数数组 public int[] GetGoodAge(string[] rawAges, FUNC<string, int> conveter) { List<string> result = new List<string>(); foreach(string age in rawAges) { result.Add(conveter(age)); } return result.ToArray(); }
在主函数可以这样来写:
Main() { string[] ages = new string[] {"123lk","345op","909ka","234ja"}; //输入一组字符串数组 int[] result = GetGoodAge(ages, age=> Int32.Parse(age.Substring(0,2))); //调用委托方法int[] GetGoodAge(string[],Func<string,int> conventer) //这里conventer就是一个匿名函数,用的是Lambda表达式 //表示输入参数age,然后返回Int32.Parse(age.Substring(0,2))的值 //这个返回值输入到result数组中 foreach(int age in result) { Console.WriteLine(age); } }
其实这个委托方法的主要特点就是节省代码,如果有多个处理输入和输出的方法,直接将函数作为参数传进去就可以了,省去了反复调用的麻烦。
相关文章推荐
- <转载>WdatePicker日历控件使用方法
- 使用Func<T1, T2, TResult> 委托返回匿名对象
- jquery 中$.post获取MVC Controller中JsonResult返回包含LIst<Model>类型的子List<Model>的高级使用方法
- 如何声明和使用 Func<T1, T2, TResult> 委托
- 【转载】[C#/ASP.NET]List<>中Sort()、Find()、FindAll()、Exist()的使用方法
- jquery 中$.post获取MVC Controller中JsonResult返回包含LIst<Model>类型的子List<Model>的高级使用方法
- MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)<转>
- <转载>SpringMVC(7): 对Class.getResourceAsStream和ClassLoader.getResourceAsStream方法所使用的资源路径的解释
- Func<T, TResult> 委托使用详解
- SQLServer 存储过程简介与使用方法<转载>
- MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)<转>
- Func<T, ..., TResult> 委托 实现方法嵌套
- 使用Func<T1, T2, TResult>
- jquery 使用方法<转载>
- Func<T, TResult>的一个使用场合
- 爱上MVC3系列~使用Func<string, HelperResult>实现访问权限的设计
- < merge />的使用方法
- Func<T,TResult>泛型委托
- <拦截方法> Objective-C使用Category
- ASP.NET List<>中Sort()、Find()、FindAll()、Exist()的使用方法