接口
接口可以看作是多态的一种。它打破了里氏替换原则。即不是共同的生物,比如动物(狗)和人(老师),这两个类
却都有吃这种方法。但是继承里不能把老师和狗归为一个类。所以这时用接口来解决这种问题。
语法

interface IStand
{void Eat();
}

注意:
1,命名I开头,默认省略修饰符,abstract,override
2,接口可以被实现多个,打破了单根性
3,接口不是类,却类似父类的存在
4,接口还可以作为参数
与多态的同:
1,强制性
2,提取多个子类的共同方法,作为多态的优化。

可以用微软提供的接口,进行快速的操作,来实现功能。
比如排序。

IComparable 接口的CompareTo方法

class Pc : IComparable
{public string i;public Pc(string i){this.i = i;}public int CompareTo(object obj){return i.CompareTo((obj as Pc).i);//或是升序比较,反过来或是降序。}
}static void Main(string[] args)List<Pc> pp = new List<Pc>();pp.AddRange(new Pc[] {new Pc("2"),new Pc("1"),new Pc("3")});pp.Sort();foreach (Pc item in pp){Console.WriteLine(item.i);}}

两个对象直接比较 IComparer 的Compare 方法

class compare
{private string name;private int age;public compare() { }public compare(int age){this.age = age;}public string Name { get => name; set => name = value; }public int Age { get => age; set => age = value; }}class testCompare : IComparer<compare>
{public int Compare(compare x, compare y){return x.Age.CompareTo(y.Age);}
}static void Main(string[] args){List<compare> cp = new List<compare>();cp.AddRange(new compare[] {new compare(22),new compare(18),new compare(20)});cp.Sort(new testCompare()); //这里有区别。foreach (var item in cp){Console.WriteLine(item.Age);}}

.Net 中接口应用的知识点(排序)相关推荐

  1. python100个必背知识-python编程面试中必考的知识点,数据类型全解,笔记超全面...

    原标题:python编程面试中必考的知识点,数据类型全解,笔记超全面 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于 ...

  2. c++ map是有序还是无序的_C++ STL中Map的按Key排序和按Value排序

    map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义 ...

  3. 所有和Java中代理有关的知识点都在这了

    转载自  所有和Java中代理有关的知识点都在这了 对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区 ...

  4. 如何在Java中对Collection对象进行排序?

    排序集合的对象 (Sorting objects of the Collection) This concept is related to sorting and here we will see ...

  5. Java 中接口和抽象类竟然有 7 点不同?

    作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) 本文已收录<Java常见面试题>系列:https://git ...

  6. Mybatis中接口和对应的mapper文件位置配置详解

    今天遇到一个问题是mybatis中接口和对应的mapper文件位置不同,而引起的操作也会不同,在网上找了好久最终找到了方法,这里就简单的解析一下: 我们知道在典型的maven工程中,目录结构有:src ...

  7. Pandas知识点-排序操作

    Pandas知识点-排序操作 数据处理过程中,经常需要对数据进行排序,使数据按指定的顺序排列(升序或降序). 在Pandas中,排序功能已经实现好了,我们只需要调用对应的方法即可. 本文使用的数据来源 ...

  8. c语言实验题——字符串排序,C语言中实现“三个数由小到大排序”的多种方法浅析...

    本文通过一个简单示例"三个数由小到大排序",将C语言中许多知识点融会贯通起来,这多种方法的实现可以将函数.宏.指针之间的区别和本质清晰的展示给读者,使本来很复杂难以理解的概念变得通 ...

  9. java集合按大小排序_List集合对象中按照不同属性大小排序的实例

    实例如下: package com.huad.luck; import java.util.arraylist; import java.util.collections; import java.u ...

最新文章

  1. 显示DataGrid序号的一个适用的方法
  2. 使用循环语句判定用户账号密码输入三次是否正确
  3. 关于function和Object的认识
  4. 利用计算机制作多媒体最后一步,福建省高中会考 多媒体技术应用 选择题专项练习十一(201206)(有答案)...
  5. java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法
  6. 巧妙解决element-ui下拉框选项过多的问题
  7. 极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区
  8. php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析
  9. JQuery datatables 标题和内容居中显示
  10. 边工作边刷题:70天一遍leetcode: day 56-1
  11. 银行内鬼程序员曝光:服务器植病毒,ATM取款717万,账户余额还不变
  12. spark SQL压缩入门
  13. Linux0.11内核--进程调度分析之1.初始化
  14. JAVA中this三种方法详解
  15. Linux下使用USB转串口转换器
  16. php中文歌词,arash的中文歌词 - 波斯语 | Persian | فارسی - 声同小语种论坛 - Powered by phpwind...
  17. iTop-4412精英版的u-boot-2017.11移植教程(二)
  18. Java基础系列:switch+enum
  19. 广告roi怎么计算公式_【图】- 什么是ROI?ROI计算公式?ROI的影响因素 - 杭州江干九堡广告媒体 - 杭州百姓网...
  20. Knockout.js----使用计算属性(Computed Observable)

热门文章

  1. 企业网站前端制作实战教程 JQuery CSS JS HTML 登录界面
  2. Git学习(3)GitHub和SVN的区别
  3. 第五十一期:AIOps落地关键点指南
  4. 第四十三期:2020年企业面临的20大数据安全风险
  5. 23.JSP 隐式对象
  6. java学习(49):方法重载
  7. 省选专练[POI2005]SAM-Toy Cars
  8. 201571030128/201571030118《小学四则运算练习软件软件需求说明》结对项目报告
  9. jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。s:a actions:iterators:paramognl表达式...
  10. 上传文件至数据库并下载