标签:src 派生类 静态方法 https ring img 加载 微信 blog
顾名思义,这是一种可以扩展C#类的操作,MSDN上的说法是:
“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”
通常就是用来扩展那些我们修改不了代码的类,比如
String,Int,DataRow,DataTable这些。
比如string类型有一个方法,叫做 Contains ,可以测试字符串中有没有包含指定的字符串或者是字符。
现在我需要判断字符串中有没有我制定的多个字符串怎么办,我写了一个 NoContains 的方法,如果字符串中不包含参数里的字符串数组,就返回真,然后以扩展方法的形式加载到string类型中。
代码如下:
这样就可以直接使用字符串的 NoContains方法了。
使用的例子如下:
array是一个string数组,只要在项目中定义这样一个静态类,就可以扩展string这个类的方法。
关于扩展方法的定义,MSDN上的说法是:
扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。
具体就是,扩展方法必须放在一个静态类里面,扩展方法本身也必须是静态方法,然后扩展方法的第一个参数必须是你想要扩展的那个类型,并且在前面加上this修饰符。
ps:想要以简洁的文字表达出来真是不容易啊,多读点书提高一下表达能力吧。
博客原文地址:http://blog.deali.cn/?p=832
我的微信公众号:DealiAxy
标签:src 派生类 静态方法 https ring img 加载 微信 blog
原文地址:http://www.cnblogs.com/deali/p/7643596.html