c#扩展方法

https://www.cnblogs.com/wpinfo/p/extention_method.html

一、如何定义:

1、创建一个静态类(类名一般为所要扩展的类名+Extensions)

2、在其中创建一个静态方法

3、为这个静态方法添加至少一个参数,并在第一个参数前加上this关键字,这个关键字会告诉编辑器当前方法是一个扩展方法。而这个方法将成为第一个参数所属类型的新成员。

以下为一个典型的扩展方法:

 注意:只有在引用扩展方法所在的静态类的命名空间后,才能使用它;否则,直接调用会编译失败。上例中,使用该扩展方法要引用TLA.Infrastructure.Extensions命名空间。

二、何时使用

从扩展方法的概念上,不难看出,它可以用在以下几种场合:
1、要为某个类型扩展功能,但没有其源码,比如某个框架或第三方库中的一个类;例如,想要获取一个列表中所有的奇数项,就可以为IList<T>接口增加一个扩展方法,这里的IList<T>接口本身是.NET框架中的接口。

 2、即使可以访问原有类型的源码,也可以使用扩展方法为它添加辅助功能;

 3、重用代码,使代码更简洁;由于扩展方法封装了一段完整的逻辑,所以,使用扩展方法就避免了复制粘贴代码的情况。上例中扩展方法的内容也符合这种使用场景。

 

原文地址:https://www.cnblogs.com/blueGao/p/10516293.html