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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 121

leetcode 121 dp? my answer class Solution { public:int maxProfit(vector<int>& prices) {int bdprices[0],sd0;int max_num0;for(int i1;i!prices.size();i){sdprices[i];if(sd<bd) bdsd;else if(sd-bd>max_num)max_numsd-bd;}return max_num;} };END

.net中的硬盘操作(针对Windows )

1&#xff0c;文件与文件夹的读取&#xff08;针对Windows &#xff09; 这是程序员的基本功。 做这种操作首先要引入一个命名空间 using System.IO I input 输入 O output 输出File.Create("C:\1.txt"); file是个静态类&#xff0c;里面有很多方法&#xff0c;多是…

优秀设计师是如何炼成的,看搜狐如何做设计

《设计之下》终于上市了&#xff0c;回忆一下整个成书的过程&#xff0c;不得不佩服作者&#xff0c;从最开始的干净利落&#xff0c;到最终的细节的调整&#xff0c;作为编辑我对他们的认识逐渐加深&#xff0c;也慢慢了解了优秀设计师是如何炼成的。 这本书源于2012年12月份的…

1092. To Buy or Not to Buy (20)

1092. To Buy or Not to Buy (20) 时间限制100 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueEva would like to make a string of beads with her favorite colors so she went to a small shop to buy some beads. There were many colorful strings …

.net动态控件的使用(listview ,treeview,tabControl)

对于控件中显示的数据可能是不固定的。如果固定&#xff0c;数据发生了变化&#xff0c;又要重新设计&#xff0c;这样浪费成本&#xff0c;资源。 所以有用代码操作控件&#xff0c;自由度&#xff0c;可控度高。 1&#xff0c;树控件 //把 tv 作为全局变量 &#xff0c; 这是…

泡茶看数据结构-临时(对象设计技术)

一.开场白 第二次《DATA STRUCTURES AND PROBLEM SOVLING WITH C》英文授课&#xff0c;让我产生英文写文章的念头。但是&#xff0c;慢慢开始参合英文吧。一下子写的话&#xff0c;怕写出来博客园首页都不敢收录了。^_^&#xff01;今天&#xff0c;从课堂和自己下午看总结下,…

前端学习(1002):简洁版滑动下拉菜单问题解决

快速滑动 不停切换 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><scrip…

js bom and dom

以下的代码只是一些小的例子。我画了一张图来总结js大的结构 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script>//Point 1 delayer and timer (BOM browser Object Model)var delayer;var tim…

leetcode 383 赎金信 C++

自己想的&#xff0c;一个思路两个解法&#xff0c;从字符串中的第一个唯一字符的思路搬过来的 one class Solution { public:bool canConstruct(string ransomNote, string magazine) {int table2[26]{0};for(int i0;i!magazine.length();i){table2[magazine[i]-a];}for(int …

Win32下 Qt与Lua交互使用(二):在Lua脚本中使用Qt类

话接上篇。成功配置好QtLuatoLua后&#xff0c;我们可以实现在Lua脚本中使用各个Qt的类。直接看代码吧。 #include "include/lua.hpp" #include <QWidget> #include <QApplication> #include <QFile> #include <QDebug>static int tolua_new…

1099. Build A Binary Search Tree (30)

1099. Build A Binary Search Tree (30) 时间限制100 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueA Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains o…

mysql列属性auto(mysql笔记四)

常见的的是一个字段不为null存在默认值 没值得时候才去找默认值&#xff0c;可以插入一个null到 可以为null的行里 主键&#xff1a;可以唯一标识某条记录的字段或者字段的集合 主键设置 主键不可为null,声明时自动设置为not null 字段上设置 字段名 primary key定义完字段后 …

详解html结构之间的各个关系,层级关系(以列表为例)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>层级关系查找元素</title></head><body><div id "div">hello<ul id ""><li>li1</li><li>li2</…

css和 js 改变html里面的定位。

css和 js 改变html里面的定位。&#xff08;三种方式&#xff09; <style type"text/css">#div1{border: 1px aquamarine solid;/*固定定位&#xff1a;此元素在整个网页的位置不变,固定某处不动*/position : fixed;left: 20px;top: 10px;}#div2{/*相对定位&am…

unity3d由多个部分组成一个角色

摘自http://forum.unity3d.com/threads/16485-quot-stitch-multiple-body-parts-into-one-character-quot So I have many many models. Each has a skeleton, material, etc. I want to take some of these and combine them into one so I can apply animation commands to …

解决ListView 缓存机制带来的显示不正常问题

ListView加载数据原理:系统绘制ListView时&#xff0c;首先会用getCount&#xff08;&#xff09;函数得到要绘制的这个列表的长度&#xff0c;然后开始逐行绘制。然后调用getView()函数&#xff0c;在这个函数里面首先获得一个View&#xff08;简单item&#xff0c;如字符串或…

windows phone (12) 小试自定义样式

windows phone (12) 小试自定义样式 原文:windows phone (12) 小试自定义样式样式在BS开发中经常用到&#xff0c;在wp中系统也提供了解决办法&#xff0c;就是对设置的样式的一种资源共享&#xff0c;首先是共享资源的位置&#xff0c;它是在App类中&#xff0c;之前我们已经有…

xdoj判断堆栈出栈序列是否有效c++

我在leetcode上写过类似的题&#xff0c;这个代码在xdoj上只能得***50***分&#xff0c;跪求各位大佬挑挑毛病。 #include<stack> #include<iostream> #include<vector> using namespace std; int main(){vector<int>poped;stack<int>s;int n,t;…

ArrayList的remove方法(重写equals方法) 与LinkedList的常用操作

package C12_18;import java.util.ArrayList;public class joy {public static void main(String[] args) {show();//重写equals方法&#xff0c;移除集合里面的元素。public static void show() {ArrayList<dog> al new ArrayList<dog>();al.add(new dog("j…