LINQ学习系列-----1.3 扩展方法_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > LINQ学习系列-----1.3 扩展方法

LINQ学习系列-----1.3 扩展方法

 2017/11/28 15:01:57  小王子的博客  程序员俱乐部  我要评论(0)
  • 摘要:这篇内容继续接着昨天的Lambda表达式的源码继续下去。昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性。一.扩展方法介绍废话不多说,先上源码截图:上图中GetMemoryCount就是一个扩展方法,从上图的标注可以得出以下几点信息:1.扩展方法需要加this关键词2.扩展方法和被包含的类必须是静态的3.被包含的类不能是泛型类深入总结:1.扩展方法可以接收任意多个参数,不过第一个参数必须用this修饰。2.扩展方法的基础是对象,比如这个对象突然想额外加一个方法
  • 标签:方法 学习

     这篇内容继续接着昨天的Lambda表达式的源码继续下去。昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性。

   一.扩展方法介绍        

            废话不多说,先上源码截图:

                     

       上图中GetMemoryCount就是一个扩展方法,从上图的标注可以得出以下几点信息:

                   1.扩展方法需要加this关键词

                   2.扩展方法和被包含的类必须是静态的

                   3.被包含的类不能是泛型

        深入总结:

                  1.扩展方法可以接收任意多个参数,不过第一个参数必须用this修饰。

                  2.扩展方法的基础是对象, 比如这个对象突然想额外加一个方法,那可以用扩展方法,第一个参数就是以这个对象为基础的参数。(扩展方法的基石是对象)

 二.扩展方法的智能感知   

        当你扩展方法代码编写完成,并且没有问题的时候。你调用此对象的扩展方法时,IDE会有智能感知,见下图箭头处:

                   

           在上图中,也可以看到扩展方法的图标也不一样,是带有蓝色下坠标示。

.扩展方法的链式语句

            

           在上图可以看到,扩展方法带来的好处是可以进行语句的链式操作。

.扩展方法和正常方法的冲突

          先上源码:

                

      从上图可以看到,在对象中没有找到对应的方法,就会去执行扩展方法(object是所有的基类)。执行结果:

             

    

    源代码:    LINQ学习系列-----1.3扩展方法(源码.rar

上一篇: 程序员的傲慢与无知 下一篇: 没有下一篇了!
发表评论
用户名: 匿名