C#扩展方法与接口结合

示例

将扩展方法与接口一起使用非常方便,因为实现可以存储在类之外,而向类添加某些功能所需的全部工作就是用接口装饰类。

public interface IInterface
{
   string Do()
}

public static class ExtensionMethods{
    public static string DoWith(this IInterface obj){
      //用IInterface实例做一些事情
    }
}

public class Classy : IInterface
{
   //这是一个包装方法;您也可以直接在Classy实例上调用DoWith(),
   // 如果您导入包含扩展方法的名称空间
   public Do(){
       return this.DoWith();
   }
}

用途像:

 var classy = new Classy();
 classy.Do(); // 将调用扩展名
 classy.DoWith(); // Classy实现了IInterface,因此也可以通过这种方式调用