Func<T,TResult>泛型委托
2014-04-22 23:28
399 查看
转自:http://www.cnblogs.com/oneword/archive/2010/08/31/1813994.html
描述:
封装一个具有一个参数并返回TResult参数指定的类型值的方法.
语法:
参数类型:
T:此委托封装的方法的参数类型.
TResult:此委托封装的方法的返回值类型.
参数:
arg:委托封装的方法的参数
返回值:此委托封装的方法的返回值
备注:
可以使用此委托构造一个能以参数形式传递的方法,而不用显式声明自定义的委托.该方法必须与此委托的方法签名想对应.
也就是说,封装的方法必须具有一个通过值传递给它的参数,并且具有返回值.
注意:
若要引用一个具有一个参数并返回void的方法,则需要使用泛型Action<T>委托.
上面接受的只是有一个参数,并有返回值的情况,其实Func委托共有以下形式:
即:当我们使用有一个、两个、三个、四个参数并有一个返回值时,可以不用自己定义委托,可以使用已定义好的委托。
例子:
页面输出:
7
6
10
8
描述:
封装一个具有一个参数并返回TResult参数指定的类型值的方法.
语法:
public delegate TResult Func<T,TResult>(T arg);
参数类型:
T:此委托封装的方法的参数类型.
TResult:此委托封装的方法的返回值类型.
参数:
arg:委托封装的方法的参数
返回值:此委托封装的方法的返回值
备注:
可以使用此委托构造一个能以参数形式传递的方法,而不用显式声明自定义的委托.该方法必须与此委托的方法签名想对应.
也就是说,封装的方法必须具有一个通过值传递给它的参数,并且具有返回值.
注意:
若要引用一个具有一个参数并返回void的方法,则需要使用泛型Action<T>委托.
上面接受的只是有一个参数,并有返回值的情况,其实Func委托共有以下形式:
public delegate TResult Func<TResult>(); public delegate TResult Func<T,TResult>(T arg); public delegate TResult Func<T1,T2,TResult>(T1 arg1,T2 arg2); public delegate TResult Func<T1,T2,T3,TResult>(T1 arg1,T2 arg2,T3 arg3); public delegate TResult Func<T1,T2,T3,T4,TResult>(T1 arg1,T2 arg2,T3 arg3,T4 arg4);
即:当我们使用有一个、两个、三个、四个参数并有一个返回值时,可以不用自己定义委托,可以使用已定义好的委托。
例子:
protected void Page_Load(object sender, EventArgs e) { List<int> list = new List<int>(); list.AddRange(new int[] { 7, 6, 10, 1, 2, 3, 4, 5, 8 }); Func<int, bool> fi = new Func<int, bool>(MoreThan5); IEnumerator<int> ie =list.Where<int>(fi).GetEnumerator(); //效果与list.Where<int>(fi).GetEnumerator()一致 //IEnumerator<int> ie = list.Where<int>(x => x > 5).GetEnumerator(); //效果与list.Where<int>(fi).GetEnumerator()一致 //IEnumerator<int> ie = list.Where(delegate(int i){return i > 5;}).GetEnumerator(); while(ie.MoveNext()) { Response.Write(ie.Current.ToString()+"<br/>"); } } public static bool MoreThan5(int i) { return i > 5; }
页面输出:
7
6
10
8
相关文章推荐
- Func<T1, T2, TResult> 泛型委托
- Func<T,TResult>泛型委托
- Func<T, TResult>泛型委托
- Func<T, TResult> 委托
- Func<T,TResult>泛型委托
- Func<T, TResult> 委托
- Action<T>和Func<T>泛型委托
- Action<T>和Func<T>泛型委托
- Func<T,TResult>泛型委托
- Func<TResult>委托和Action委托
- 泛型委托 Action<T>和Func<T,TResult>
- Func<T,TResult>泛型委托
- Func<T, ..., TResult> 委托 实现方法嵌套
- 学习笔记之Func<T>与Action<T>委托泛型介绍
- Func<TResult>委托,Action 委托,Tuple 类
- Func<T,T> 委托 与 lambda 使用
- C# Func<>委托
- C#中Predicate<T>与Func<T, bool>泛型委托的用法实例
- action<> func<> 这2个委托使用和理解
- 使用Func<T1, T2, TResult> 委托返回匿名对象