码迷,mamicode.com
首页 > 其他好文 > 详细

LinQ—扩展方法

时间:2014-05-21 15:00:25      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   c   code   ext   

概述

        本节主要讲解扩展方法,涉及LinQ的具体知识不多。


扩展方法的描述

         .net framework为编程人员提供了很多的类,很多的方法,但是,不论.net framework在类中为我们提供了多么多的方法,有时候仍然不能满足我们的需求,例如:你想让字符串对象具有ToPascal方法,含义就是将字符串转化为Pascal格式,并返回,我们知道,.net framework提供的String类中并没有为我们提供相应的方法,此时,我们应该怎么做才可以达到我们的目的呢?有人说可以继承String类,这个不行,因为.net framework提供的类都是finnal类,最终类,不能被继承,那么,怎么样才可以解决这个问题呢?此时,就出现了扩展方法


扩展方法的目的和好处

       为现有类提供一些额外的方法,这样做的好处就是,原有类不需要重新编译生成,只需要在程序中引入一些额外的dll就可以了


扩展方法的使用

       String类添加一个ToPascal方法,实现将自己格式化为Pascal格式的字符串并返回

    //扩展方法的定义
    public static classExtraClass{//静态类,类名随意       
        public static String ToPascal(this string s) {
            stringstrName = s.Substring(0, 1).ToUpper() +s.Substring(1).ToLower();
            return strName;
        }
    }
    //扩展方法的使用
    String strName="GreenHill";
    strName.ToPascal();//返回的结果为Pascal格式的字符串
    解释
         string:返回值的类型;
         ToPascal:扩展的方法名;
         this string:扩展所有类;
         s:对象名;

         注意:在使用String类的ToPascal方法时,必须要在程序中引入ExtraClass

         上面的这种方式是没有参数的写法,那么有参数的怎么写呢?有兴趣的可以下去自己查查,相信在读了这一篇博客的基础上,再学习扩展方法的其它具体的定性时,会变得非常轻松。


扩展方法和LinQ的关系

        扩展方法是实现LinQ的基础,因为LinQ的具体实现就是通过扩展方法实现的,也就是说LinQ就是往.net framework的原有的一些类上添加了一些扩展方法,从形式来说,达到了一种通过使用不同对象的相同方法,实现一样的目的。


总结

       在实际的应用中,为.net framework中的类扩展一些方法是不常用的,最起码我现在在实际的项目中没用过,所以,对于上面扩展方法的描述的需求,我们要站在另一个高度看,也就是说,扩展方法是微软为了引入LinQ而作的工作,扩展方法的真正目的是为了LinQ

LinQ—扩展方法,布布扣,bubuko.com

LinQ—扩展方法

标签:style   blog   class   c   code   ext   

原文地址:http://blog.csdn.net/jiben2qingshan/article/details/26358701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!