namespace ExtensionInterfaceMethod { class Program { static void Main(string[] args) { //使用接口變量來調用擴展方法 IBasicInterface bii = new BasicImplement(); bii.SubStract(9, 3); } } //先創建一個簡單的接口 public interface IBasicInterface { int Add(int x, int y); } //創建一個實現該接口的類 public class BasicImplement : IBasicInterface { #region IBasicInterface 成員 public int Add(int x, int y) { return x + y; } #endregion } }
如果想要為該接口IBasicInterface增加一個相減的Subtract方法,在擴展方法中新定義一個Subtract方法。
namespace ExtensionInterfaceMethod { public static class ExtensionMethodClass { public static int SubStract(this IBasicInterface basicinterface, int x,int y); } }
因為是接口擴展方法,所以不打算為這個擴展方法提供任何代碼實現。
編譯時運行報錯,解決方法,在接口擴展方法中實現代碼。
namespace ExtensionInterfaceMethod { public static class ExtensionMethodClass { public static int SubStract(this IBasicInterface basicinterface, int x, int y) { //盡管是擴展一個接口,但是還是必須添加對方法的實現 return x - y; } } }