代码之家  ›  专栏  ›  技术社区  ›  SoftwareGeek

iComparable和iEquatable接口有什么区别?

  •  83
  • SoftwareGeek  · 技术社区  · 15 年前

    这两个接口似乎都比较对象是否相等,那么它们之间的主要区别是什么?

    4 回复  |  直到 13 年前
        1
  •  173
  •   Greg D    14 年前

    IEquatable 测试两个对象是否相等。

    IComparable 对要比较的对象强制进行总排序。

    例如, 可计量的 会告诉你5不等于7。 可计算的 告诉你5比7早。

        2
  •  14
  •   Islam Yahiatene    15 年前

    IEquatable<T> 为了平等。

    IComparable<T> 为了订货。

        3
  •  10
  •   Damien_The_Unbeliever    15 年前

    除了格雷格的回答:

    您可以在不实现iequatable的情况下实现icomparable,而对于一个部分排序有意义的类,如果您非常明确地希望使用者得出这样的推论:仅仅因为compareTo()返回零,那么 暗示对象是相等的(除了排序的目的之外)。

        4
  •  7
  •   Will Eddins ianpoley    15 年前

    如所述 MSDN Page for IEquatable :

    IComparable接口定义 这个 CompareTo 方法,它确定 实例的排序顺序 实现类型。有限的 接口定义 Equals 方法, 它决定了 实现类型的实例。

    等于 VS 并列