.Net 中接口应用的知识点(排序)
接口
接口可以看作是多态的一种。它打破了里氏替换原则。即不是共同的生物,比如动物(狗)和人(老师),这两个类
却都有吃这种方法。但是继承里不能把老师和狗归为一个类。所以这时用接口来解决这种问题。
语法
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 中接口应用的知识点(排序)相关推荐
- python100个必背知识-python编程面试中必考的知识点,数据类型全解,笔记超全面...
原标题:python编程面试中必考的知识点,数据类型全解,笔记超全面 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于 ...
- c++ map是有序还是无序的_C++ STL中Map的按Key排序和按Value排序
map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义 ...
- 所有和Java中代理有关的知识点都在这了
转载自 所有和Java中代理有关的知识点都在这了 对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区 ...
- 如何在Java中对Collection对象进行排序?
排序集合的对象 (Sorting objects of the Collection) This concept is related to sorting and here we will see ...
- Java 中接口和抽象类竟然有 7 点不同?
作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) 本文已收录<Java常见面试题>系列:https://git ...
- Mybatis中接口和对应的mapper文件位置配置详解
今天遇到一个问题是mybatis中接口和对应的mapper文件位置不同,而引起的操作也会不同,在网上找了好久最终找到了方法,这里就简单的解析一下: 我们知道在典型的maven工程中,目录结构有:src ...
- Pandas知识点-排序操作
Pandas知识点-排序操作 数据处理过程中,经常需要对数据进行排序,使数据按指定的顺序排列(升序或降序). 在Pandas中,排序功能已经实现好了,我们只需要调用对应的方法即可. 本文使用的数据来源 ...
- c语言实验题——字符串排序,C语言中实现“三个数由小到大排序”的多种方法浅析...
本文通过一个简单示例"三个数由小到大排序",将C语言中许多知识点融会贯通起来,这多种方法的实现可以将函数.宏.指针之间的区别和本质清晰的展示给读者,使本来很复杂难以理解的概念变得通 ...
- java集合按大小排序_List集合对象中按照不同属性大小排序的实例
实例如下: package com.huad.luck; import java.util.arraylist; import java.util.collections; import java.u ...
最新文章
- 显示DataGrid序号的一个适用的方法
- 使用循环语句判定用户账号密码输入三次是否正确
- 关于function和Object的认识
- 利用计算机制作多媒体最后一步,福建省高中会考 多媒体技术应用 选择题专项练习十一(201206)(有答案)...
- java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法
- 巧妙解决element-ui下拉框选项过多的问题
- 极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区
- php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析
- JQuery datatables 标题和内容居中显示
- 边工作边刷题:70天一遍leetcode: day 56-1
- 银行内鬼程序员曝光:服务器植病毒,ATM取款717万,账户余额还不变
- spark SQL压缩入门
- Linux0.11内核--进程调度分析之1.初始化
- JAVA中this三种方法详解
- Linux下使用USB转串口转换器
- php中文歌词,arash的中文歌词 - 波斯语 | Persian | فارسی - 声同小语种论坛 - Powered by phpwind...
- iTop-4412精英版的u-boot-2017.11移植教程(二)
- Java基础系列:switch+enum
- 广告roi怎么计算公式_【图】- 什么是ROI?ROI计算公式?ROI的影响因素 - 杭州江干九堡广告媒体 - 杭州百姓网...
- Knockout.js----使用计算属性(Computed Observable)
热门文章
- 企业网站前端制作实战教程 JQuery CSS JS HTML 登录界面
- Git学习(3)GitHub和SVN的区别
- 第五十一期:AIOps落地关键点指南
- 第四十三期:2020年企业面临的20大数据安全风险
- 23.JSP 隐式对象
- java学习(49):方法重载
- 省选专练[POI2005]SAM-Toy Cars
- 201571030128/201571030118《小学四则运算练习软件软件需求说明》结对项目报告
- jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。s:a actions:iterators:paramognl表达式...
- 上传文件至数据库并下载