标签: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就是往.net framework的原有的一些类上添加了一些扩展方法,从形式来说,达到了一种通过使用不同对象的相同方法,实现一样的目的。
在实际的应用中,为.net framework中的类扩展一些方法是不常用的,最起码我现在在实际的项目中没用过,所以,对于上面扩展方法的描述的需求,我们要站在另一个高度看,也就是说,扩展方法是微软为了引入LinQ而作的工作,扩展方法的真正目的是为了LinQ。
标签:style blog class c code ext
原文地址:http://blog.csdn.net/jiben2qingshan/article/details/26358701