C#中的IComparable和IComparer接口

Posted 三五月儿

tags:

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

C#中,自定义类型,支持比较和排序,需要实现IComparable接口。IComparable接口存在一个名为CompareTo()的方法,接收类型为object的参数表示被比较对象,返回整型值:1表示当前对象大于被比较对象,0表示两者相等,-1表示当前对象小于被比较对象。

public int CompareTo(object o) 

若想以更加灵活的方式对自定义类进行比较,可以声明一个继承自IComparer接口的比较器,实现接口方法Comprae(),接收2个object类型参数作为比较对象,返回整型值:1表示前者大于后者,0表示两者相等,-1表示前者小于后者。

public int Compare(object x, object y) 

IComparable是“可比较的”意思,自定义类实现该接口,就具有可比较的功能;IComparer是“比较器”的意思,实现该接口的类就是一个比较器,可以将比较器“注入”类中,使类具有比较和排序的功能。
具体事例可以参考本人以前整理的两篇博文。
IComparable接口示例代码
IComparer接口示例代码

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

[译]在C#中使用IComparable和IComparer接口

c# IComparable与IComparer接口

C#接口汇总

C#接口汇总

在C#语言开发程序中,以下关于IComparable<T>和IComparer<T>的说法中错误的是()。(选择一项)

C# 中的 Icompare 接口和 IComparable 接口有啥区别??