| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 1486 人关注过本帖
标题: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:36
帖 子:696
专家分:4405
注 册:2011-9-30
  得分:0 
public int CompareTo(object value); 是实现IComparable接口的
public int CompareTo(string strB); 是实现IComparable<string>接口的
并非重载
实际上就string来说,这两个方法的实现最终都调用了System.Globalization.CultureInfo.CurrentCulture.CompareInfo.Compare(this, strB, CompareOptions.None);方法

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


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







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

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