标题:string类继承了接口IComparable,为什么要实现2个CompareTo
只看楼主
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
结帖率:100%
 问题点数:0 回复次数:2 
string类继承了接口IComparable,为什么要实现2个CompareTo

string类继承了接口IComparable,按理说只要实现第一个方法就OK了,为什么要重载第二个呢?

public int CompareTo(object value);
public int CompareTo(string strB);



还有IComparable接口和ICompare接口区别在哪里,他们的作用差异是什么?


搜索更多相关主题的帖子: public 接口 
2015-09-30 13:02
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
public int CompareTo(object value); 是实现IComparable接口的
public int CompareTo(string strB); 是实现IComparable<string>接口的
并非重载
实际上就string来说,这两个方法的实现最终都调用了System.Globalization.CultureInfo.(this, strB, CompareOptions.None);方法

IComparable接口和ICompare接口区别,请阅读
http://
2015-10-07 00:08
leisiege
Rank: 4
等 级:业余侠客
威 望:8
帖 子:95
专家分:235
注 册:2015-10-22
得分:0 
一个是IComparable  说是这个类可以做比较。说明这个类的对象可以调用compare方法,传入另一个相同的对象,返回比较结果。(obj2).
实现这个接口。相关的对象集合就可以用sort之类的排序方法了。


一个是IComparer    注意后缀是er。说明这个类是一个比较器。可以把两个对象传进他的函数中,返回比较结果。(obj1,obj2);
这个一般都是类已经做好,不想改动,只能单独做一个类专门用来比较已经做好的类对象。
2015-10-22 16:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457802-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.734567 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved