php做网站访问记录,湖北建站公司,高端品牌车有哪些,网站建设电话销售话术实例那得从很久很久以前说起了#xff0c;记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂。 委托的使用 例一#xff1a; 什么是委托#xff1f; 个人理解#xff1a;用来传递方法的类型。#xff08;用来传递数字的类型有int、float、double#xff0c;用… 那得从很久很久以前说起了记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂。 委托的使用 例一 什么是委托 个人理解用来传递方法的类型。用来传递数字的类型有int、float、double用来传递方法的就有委托 例二 又经过了很久很久... 匿名方法 很多时候委托接收的方法是一次性的或者方法体是非常简单的... 例三 我们可以写成 有没有发现我们每次都要定义委托很多时候签名可能是一样的。这样就没有必要定义重复的。 然后又过了很久很久... Func和Action 可能老大也觉得我们每次定义委托有点傻所以干脆在框架内一次定义好所有可能用到的委托。那千变万化的方法签名怎么可能定义得全没关系定义成泛型的不就可以了吗。 先说Func 细心的朋友可能看到了Func相对于AddDelegate多定义了一个int。多出了的那个是指的是返回类型。我们F12看对应的定义 关于上面Func的写法我们可以简写成语法糖而已编译后还是注释的代码 再看Action 提醒以后如果我们写代码的时候如果写到到delegate...你要马上想到是否可以用Func或者Action来代替呢C#4中的Action和Func有16个参数足够你用了。 我们等了又等又过了好久好久... Lambda的诞生 我XX这TM就是亲兄弟啊。直接去掉delegate关键字然后加一个就成了lambda表达式了。读作goes to 我们继续简化 丢掉参数类型也是可以的因为强大的VS可以根据泛型委托Func自己推断出来参数类型。 还可以简化吗当然 return关键字也不要了大括号也不要了。当然方法体只有单条语句才能怎么做 现在看起来已经非常接近我们平时用的Lambda表达式了。 如果传入参数只有一个的话我们还可以继续简化 这就是我们平时见得最多的lambda长相了。 要长成这样也是有要求的 只能有一个传入参数方法体只能只一条语句。 关于第1点lambda我们平时用得较多的是基于IEnumerable或IQueryable所以只能有一个参数也就满足了。 关于第2点我们使用扩展方法的链式编程来解决。 如用链式来解决第二点 从此我们过上了幸福的生活... 借《深入理解C#》中的一图 原文地址http://www.cnblogs.com/zhaopei/p/5767631.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注