首先,从表面上看,Equals是一种方法(存在于每个对象中),IComparable而且IComparer是接口.
Equals存在于任何类中,并且可以重写以根据类的上下文提供相等性测试(这也是一种很好的覆盖GetHashCode方法).默认情况下,它只测试对象在内存中是否相等,这不是很有用.Equals(和GetHashCode)通常在搜索或散列的上下文中给出不同的实现.
实现IComparable是一种更细粒度的比较方式,因为它提供的CompareTo方法是大于/小于比较,而不是Equals简单的等同或不比较.例如,二叉搜索树结构可以从该方法中受益.
IComparer类似于IComparable,除了它从外面工作.它允许您定义一个"中性"对象,用于比较另外两个对象而无需直接修改它们,您需要这样做IComparable.
| 归档时间: |
|
| 查看次数: |
1961 次 |
| 最近记录: |