如果当前对象小于obj,则返回值小于0。如果当前对象小于obj,则返回值大于0。如果当前对象小于obj,则返回值等于0。IComparable量化数据接口,接口接受的参数类型为Object,因此需要对CompareTo()函数的参数进行运行时类型校验。每一次执行比较时,都要重新解析参数的类型。
其他代码不需要修改,运行结果和上面代码相同。
此量化数据接口,接口的方法CompareTo用于比较对象大小,如果一个类实现了这个接口中的该方法,说明这个类的对象是可以比较大小的。intCompareTo(Objectob方法返回一个整型值,其含义下:
IComparable接口规定了一个没有实现的方法CompareTo(Objectob,语法如下:publicinterfaceIComparable{intCompareTo(Objectoj;}
注意:参数obj必须与实现该接口的类有相同的类型,否则会引发异常。
classProgarm{staticvoidMain(){Studentstu1=newStudent('张三',10);Studentstu2=newStudent('李四',20);Studentstu3=newStudent('王五',30);//对象之间进行比较if(stuCompareTo(stu>0)ConsolWriteLine('{0}的年龄大于{1}',stuName,stuNam;elseConsolWriteLine('{0}的年龄小于{1}',stuName,stuNam;}}
其中,“
泛型接口IComparable
IComparable和IComparer接口区别如下:◆IComparable在要比较的对象的类中实现,可以比较该对象和另一个对象;◆IComparer在一个单独的类中实现,可以比较任意两个对象。
usingSystem;usingSysteCollections.Generic;publicclassStudent:IComparable{privatestringname;publicstringName{get{returnname;}set{name=value;}}privateintage;publicintAge{get{returnage;}set{age=value;}}publicStudent(stringsname,intsag{this.name=sname;this.age=sage;}//实现接口中的方法publicintCompareTo(objectob{//将参数转化为Student对象Studentother=objasStudent;//比较大小,返回结果returnthis.agCompareTo(other.ag;}}
IComparable
文章为作者独立观点,不代表股票交易接口观点