c#扩展方法的理解(二:接口)
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#扩展方法的理解(二:接口)相关推荐
- 【转】五、谈扩展方法的理解
[转]五.谈扩展方法的理解 为什么要用扩展方法 在说什么是扩展方法之前我们先来说说为什么要用扩展方法. 首先我们定义一个 Person 类: public class Person {/// < ...
- [C# 基础知识系列]专题十五:全面解析扩展方法
引言: C# 3中所有特性的提出都是更好地为Linq服务的, 充分理解这些基础特性后.对于更深层次地去理解Linq的架构方面会更加简单,从而就可以自己去实现一个简单的ORM框架的,对于Linq的学习 ...
- C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...
本文内容: 继承 Equal示例 结构和类 属性 Ref and Out 类操作 扩展方法 接口 可空类型 分部类 1. 继承 using System; using System.Collectio ...
- .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法
开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...
- Kotin学习手记——类、接口、扩展方法、空类型
定义类和构造方法: class SimpleClass(var x: Int, val y: String){}//创建类不需要new关键字 val simpleClass = SimpleClass ...
- 1.19(对象类型判断、复制、in、遍历;深拷贝与浅拷贝;字符串的遍历接口、模板字符串、字符串扩展方法)
1.19(对象类型判断.复制.in.遍历;深浅拷贝;字符串的遍历接口.模板字符串.unicode.字符串扩展方法) 一.对象 1.属性简洁表示法与属性名表达式 let name = "wuy ...
- JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)
为什么80%的码农都做不了架构师?>>> 理解$.extend(),与$.fn.extend()方法区别 1.$.extend()方法 $.extend()方法在JQuery中 ...
- C#高级编程——C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)——图文详解加源码
C#高级编程--C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)--图文详解加源码 前言
- MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedListT结果集
namespace Entity { public interface IPagedList { /// <summary> /// 记录数 ...
最新文章
- python字符串转归类_pandas剪切:如何将分类标签转换为字符串(否则无法导出到Excel)?
- Quartz在Spring中动态设置cronExpression
- Using JSON for data transfer
- Idea创建包以及导入jar包等操作
- 【Elasticsearch】使用Elasticsearch 7.8 快速搭建食谱搜索系统
- ie6,ie7兼容性总结(转)
- JAVA Native Method 转自CSDN
- linux ps的a选项,linux下PS命令详解(转载)
- MATLAB实现滚动密钥密码
- 二进制、八进制、十进制与十六进制
- C语言编写小程序——万年历
- 你所不知道的文件上传更安全的类型判断
- 以DMA方式开启DAC输出正弦波
- HTML5期末大作业:美食坊网站设计——美食坊美食购物主题(15页) HTML+CSS+JavaScript
- Java多线程游戏-雷霆战机
- Vue01介绍+数据双向绑定+生命周期+什么是BootCDN+代码示例
- 逆水寒 各个服务器位置,从商人的角度看逆水寒——服务器选择篇
- Day42 JavaScript-2
- 2021-11-04 Spring
- 手机收发邮件简单实现?注册163电子邮箱今天圆梦
热门文章
- 图像目标分割_5 DeepLab V2 V3 V3+
- react不同环境不同配置angular_前端问题集:vue配置环境-给不同的环境配不同的打包命令...
- 天池 在线编程 回文子串(区间动态规划)
- 天池 在线编程 最小振幅(排序)
- [编程启蒙游戏] 1. 猜数字
- LeetCode 1325. 删除给定值的叶子节点(递归)
- LeetCode 1395. 统计作战单位数(蛮力法)
- 数据中台建设与应用_Gartner对于建设数据中台的建议
- ggplot2箱式图两两比较_第十九章_使用ggplot2进行高级绘图
- 召回粗排精排-级联漏斗(下)