Expression<Func<T,TResult>>和Func<T,TResult>
2015-05-21 16:25
260 查看
1.Expression<Func<T,TResult>>是表达式
https://msdn.microsoft.com/zh-cn/library/system.linq.expressions.expression(v=vs.100).aspx https://msdn.microsoft.com/zh-cn/library/bb335710(v=vs.100).aspx
2.Func<T, TResult> 委托
封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。
public delegate TResult Func<in T, out TResult>(T arg)
类型参数
in T
此委托封装的方法的参数类型。
该类型参数是逆变的。即可以使用指定的类型或派生程度更低的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。
out TResult
此委托封装的方法的返回值类型。
该类型参数是协变的。即可以使用指定的类型或派生程度更高的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。
参数
arg
类型:T
此委托封装的方法的参数。
返回值
类型:TResult
此委托封装的方法的返回值。
来自:
http://blog.csdn.net/shuyizhi/article/details/6598013
//使用LambdaExpression构建表达式树 Expression<Func<int, int, int, int>> expr = (x, y, z) => (x + y) / z; Console.WriteLine(expr.Compile()(1, 2, 3));
https://msdn.microsoft.com/zh-cn/library/system.linq.expressions.expression(v=vs.100).aspx https://msdn.microsoft.com/zh-cn/library/bb335710(v=vs.100).aspx
2.Func<T, TResult> 委托
封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。
public delegate TResult Func<in T, out TResult>(T arg)
类型参数
in T
此委托封装的方法的参数类型。
该类型参数是逆变的。即可以使用指定的类型或派生程度更低的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。
out TResult
此委托封装的方法的返回值类型。
该类型参数是协变的。即可以使用指定的类型或派生程度更高的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。
参数
arg
类型:T
此委托封装的方法的参数。
返回值
类型:TResult
此委托封装的方法的返回值。
string mid = ",middle part,"; ///匿名写法 Func<string, string> anonDel = delegate(string param) { param += mid; param += " And this was added to the string."; return param; }; ///λ表达式写法 Func<string, string> lambda = param => { param += mid; param += " And this was added to the string."; return param; }; ///λ表达式写法(整形) Func<int, int> lambdaint = paramint => { paramint = 5; return paramint; }; ///λ表达式带有两个参数的写法 Func<int, int, int> twoParams = (x, y) => { return x*y; }; MessageBox.Show("匿名方法:"+anonDel("Start of string")); MessageBox.Show("λ表达式写法:" + lambda("Lambda expression")); MessageBox.Show("λ表达式写法(整形):" + lambdaint(4).ToString()); MessageBox.Show("λ表达式带有两个参数:" + twoParams(10, 20).ToString());
来自:
http://blog.csdn.net/shuyizhi/article/details/6598013
相关文章推荐
- Expression<Func<T,TResult>>和Func<T,TResult> 与AOP与WCF
- Expression<Func<T,TResult>>和Func<T,TResult>
- Expression<Func<T,TResult>>和Func<T,TResult>的区别
- Func<T, TResult>泛型委托
- C# Func<T,TResult>
- Func<T,TResult>的使用方法(转载)
- Func<T,TResult>泛型委托
- Func<T,TResult>泛型委托
- C# Func<T,TResult>
- Expression<Func<T, bool>>与Func<T, bool>的区别
- Func<T, ..., TResult> 委托 实现方法嵌套
- Func<T, TResult> 委托的由来和调用和好处(为了高大上,为了白富美)
- 拉姆达表达式 追加 条件判断 Expression<Func<T, bool>>
- Entity FrameWork 中使用Expression<Func<T,true>>访问数据库性能优化
- Action<T>,Func<T,ResultT>说明
- Func<TResult>委托和Action委托
- Func<T, TResult> 委托使用详解
- Func<T, TResult>
- Delegate Action<T in> Func<T in,out Tresult> Predicate<T>
- .NET Core中合并Expression<Func<T,bool>>的正确姿势