知识大全 了解C#特性扩展方法[1]
Posted 扩展
篇首语:一年好景君须记,最是橙黄橘绿时。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 了解C#特性扩展方法[1]相关的知识,希望对你有一定的参考价值。
了解C#特性扩展方法[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在我们的编程生涯中我们要使用很多很多类库 这些类库有的是我们自己开发的 我们有她的代码 有的是第三方发布的 我们不仅没有他们的代码 连看的机会都没有
作为 net程序员 我们每天都要和BCL(Base Class Linbrary)打交道 无疑 BCL做为一个年轻的框架类库 她是成功的 但是还有一些时候我们还是得写一些 Helper 方法来扩展类库 由于我们不能修改类库的源代码 我们只有写一个个的静态类 虽然在使用上也算方便 但作为追求完美的程序员来说总有些不雅 现在我就碰到这样的事情 前两天奉命写一个从XML文件加载Chart图的设置的方法 从XML加载数据绑定到对象上 这肯定是反射的用武之地了 我经常需要写一些根据对象属性名字来判断这个对象是否有这个属性或者根据属性名获取该属性的值 还是按照平常一样 我很快写了一个PropertyHelper 里面有两个静态方法 HasProperty GetValueByName
PropertyHelper HasProperty(point X ) 如此的调用也还过得去 不过在C# 微软为我们提供了扩展方法 现在我们可以直接这样调用了point HasProperty( X );看看我是如何实现这个扩展方法的?
publicstaticclassPropertyExtension publicstaticobjectGetValueByName(thisobjectself stringpropertyName) if(self==null) returnself; Typet=self GetType(); PropertyInfop=t GetProperty(propertyName); returnp GetValue(self null);
我给object类型添加了一个扩展方法 在 net里所有的类都继承自object 那所有的类都默认的拥有这个方法了 真方便 呵呵
注意到和普通的静态方法有何差别?在这个方法的第一个参数前面多了一个this关键字
扩展方法
方法所在的类必须是静态的
方法也必须是静态的
方法的第一个参数必须是你要扩展的那个类型 比如你要给int扩展一个方法 那么第一个参数就必须是int
在第一个参数前面还需要有一个this关键字
cha138/Article/program/net/201311/14520相关参考
了解C#特性扩展方法[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 按照上面的步骤写你就得
了解C#特性:对象集合初始化器[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在写一些实体
了解C#特性:对象集合初始化器[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 后来我发现我
了解C#特性匿名类型与隐式类型局部变量 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
C#扩展方法使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 为指定类型扩展方法 定义类Cl
使用C#编写扩展存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 什么是扩展存储过程?
用C#或JavaScript扩展XSLT 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天在u
根据现有C#代码文件生成扩展代码文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 为什么在这里
C#代码文件生成扩展代码文件的想法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 看到这标题的朋
C#特性学习与使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#特性以前的时候用过C#中的