Max*_*ich 6 c# lambda anonymous-function func
我最近一直在玩代理Func<T, TResult>并创建返回Func<T, TResult>包含lambda的不同实例的方法,但我一直在努力想出的是为什么人们想要返回(甚至创建这样的实例)的任何好的现实世界观点.
在MSDN上有一个例子,它们执行以下操作......
Func<string, string> convertMethod = UppercaseString;
private static string UppercaseString(string inputString)
{
return inputString.ToUpper();
}
Run Code Online (Sandbox Code Playgroud)
虽然它看起来很漂亮并且是一个有趣的概念,但我没有看到这些代码提供的优势.
那么有人可以提供他们必须使用的任何现实世界的例子,Func<T, TResult>并且一般为什么人们可能想要使用这个代表?
Ada*_*son 11
如果你要问的是,为什么我们一般会有代表:
IQueryable一个表达式的提供程序,但是对于LINQ到对象,您使用了委托)代理提供了一种将自己的行为注入另一个对象的方法.最常见的用法是事件.对象公开事件并提供在该事件触发时调用的函数(匿名或非匿名).
如果你问为什么我们有Func<T, TResult>(和类似的)代表,那么有两个主要原因:
Action<>和Func<>代表不能涵盖所有案例,但它们很容易提供,并涵盖了需要定制代表的许多情况.Func<T, TResult>委托在LINQ-to-Objects中广泛使用来定义谓词.更具体地说,Func<T, bool>.这允许您定义一个带有强类型成员的谓词,并IEnumerable<T>使用lambda或普通函数返回一个布尔值,然后将该谓词传递给LINQ-to-Objects.| 归档时间: |
|
| 查看次数: |
4282 次 |
| 最近记录: |