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;}}
}

转载于:https://www.cnblogs.com/zmztya/p/5364489.html

c#扩展方法的理解(二:接口)相关推荐

  1. 【转】五、谈扩展方法的理解

    [转]五.谈扩展方法的理解 为什么要用扩展方法 在说什么是扩展方法之前我们先来说说为什么要用扩展方法. 首先我们定义一个 Person 类: public class Person {/// < ...

  2. [C# 基础知识系列]专题十五:全面解析扩展方法

    引言:  C# 3中所有特性的提出都是更好地为Linq服务的, 充分理解这些基础特性后.对于更深层次地去理解Linq的架构方面会更加简单,从而就可以自己去实现一个简单的ORM框架的,对于Linq的学习 ...

  3. C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...

    本文内容: 继承 Equal示例 结构和类 属性 Ref and Out 类操作 扩展方法 接口 可空类型 分部类 1. 继承 using System; using System.Collectio ...

  4. .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法

    开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...

  5. Kotin学习手记——类、接口、扩展方法、空类型

    定义类和构造方法: class SimpleClass(var x: Int, val y: String){}//创建类不需要new关键字 val simpleClass = SimpleClass ...

  6. 1.19(对象类型判断、复制、in、遍历;深拷贝与浅拷贝;字符串的遍历接口、模板字符串、字符串扩展方法)

    1.19(对象类型判断.复制.in.遍历;深浅拷贝;字符串的遍历接口.模板字符串.unicode.字符串扩展方法) 一.对象 1.属性简洁表示法与属性名表达式 let name = "wuy ...

  7. JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)

    为什么80%的码农都做不了架构师?>>>    理解$.extend(),与$.fn.extend()方法区别 1.$.extend()方法 $.extend()方法在JQuery中 ...

  8. C#高级编程——C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)——图文详解加源码

    C#高级编程--C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)--图文详解加源码 前言

  9. MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedListT结果集

    namespace Entity {     public interface IPagedList     {         /// <summary>         /// 记录数 ...

最新文章

  1. python字符串转归类_pandas剪切:如何将分类标签转换为字符串(否则无法导出到Excel)?
  2. Quartz在Spring中动态设置cronExpression
  3. Using JSON for data transfer
  4. Idea创建包以及导入jar包等操作
  5. 【Elasticsearch】使用Elasticsearch 7.8 快速搭建食谱搜索系统
  6. ie6,ie7兼容性总结(转)
  7. JAVA Native Method 转自CSDN
  8. linux ps的a选项,linux下PS命令详解(转载)
  9. MATLAB实现滚动密钥密码
  10. 二进制、八进制、十进制与十六进制
  11. C语言编写小程序——万年历
  12. 你所不知道的文件上传更安全的类型判断
  13. 以DMA方式开启DAC输出正弦波
  14. HTML5期末大作业:美食坊网站设计——美食坊美食购物主题(15页) HTML+CSS+JavaScript
  15. Java多线程游戏-雷霆战机
  16. Vue01介绍+数据双向绑定+生命周期+什么是BootCDN+代码示例
  17. 逆水寒 各个服务器位置,从商人的角度看逆水寒——服务器选择篇
  18. Day42 JavaScript-2
  19. 2021-11-04 Spring
  20. 手机收发邮件简单实现?注册163电子邮箱今天圆梦

热门文章

  1. 图像目标分割_5 DeepLab V2 V3 V3+
  2. react不同环境不同配置angular_前端问题集:vue配置环境-给不同的环境配不同的打包命令...
  3. 天池 在线编程 回文子串(区间动态规划)
  4. 天池 在线编程 最小振幅(排序)
  5. [编程启蒙游戏] 1. 猜数字
  6. LeetCode 1325. 删除给定值的叶子节点(递归)
  7. LeetCode 1395. 统计作战单位数(蛮力法)
  8. 数据中台建设与应用_Gartner对于建设数据中台的建议
  9. ggplot2箱式图两两比较_第十九章_使用ggplot2进行高级绘图
  10. 召回粗排精排-级联漏斗(下)