C#内建接口:IComparable

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#内建接口:IComparable相关的知识,希望对你有一定的参考价值。

    这节开一个新的系列:C#内建接口。主要给大家讲一下C#内部给我们定义的一些常用的接口,以及它们是怎么使用的。基本上一节讲一个吧,本节先从IComparable开始。

01

了解IComparable

    一般的,值类型的数据比较大小,就是看它俩的值,这种比较很单纯,但是也有某些情况,我们需要对引用类型进行比较,也就是说比较两个对象谁大谁小,对象之间的比较其实就是根据业务需求,比较其属性,为了统一一个对象比较之间的规范,C#中定义了一个名为IComparable的接口,顾名思义,继承了这个接口的对象都是可比较的嘛,那下面就来看看这个接口的成员吧:

    这个接口还是很简单的 ,就一个CompareTo方法,参数是可空类型的任意对象,返回一个int数字,意思就是比较的结果如果是小于,则返回-1,等于返回0,大于则返回1,或者根据您的业务,返回任何数字都是可以。

02

代码演示

    下面从代码中演示一下它的使用:

    以上是一个矩形类,有宽和高两个属性,比较矩形大小就是比较其面积大小,所以我继承了IComparable接口,并将面积比较代码写在了里面,具体代码很简单,也就不做解释了,但大家需要注意一点,因为参数是object类型,并且引用类型可以为空,所以不要忘记一些比较的参数检查。

    下面用一个控制台程序为大家做一下结果演示:

    上图代码中我创建了两个对象,一个是12*12的samll,一个是24*24的big,输出结果为:

    大家也许注意到了我注释掉的代码,string也是实现了这个接口的,有兴趣的同学可以自己写写代码测试一下,字符串之间是根据其字符的ASCII表位置来比较的,如果第一个字符相同,则比较第二个,这样以此类推。

本节到此结束...

以上是关于C#内建接口:IComparable的主要内容,如果未能解决你的问题,请参考以下文章

C#内建接口:IEnumerable

Annotation:系统内建Annotation

C#核编之内建数据类型

C#的类型列表

c# 解析JSON的几种办法

C# 编写 TensorFlow 人工智能应用