【问题标题】:Why does IEqualityComparer<T> Equals method take two arguments?为什么 IEqualityComparer<T> Equals 方法需要两个参数?
【发布时间】:2015-01-02 08:11:27
【问题描述】:

我不明白 Equals 方法为什么采用 (T x, T y)。当您在一个实例上调用该方法时,您不是已经有一个实例可以比较吗? GetHashCode 也一样——如果我已经在现有实例上调用它,为什么还需要一个对象实例作为参数?

如果我调用 a.GetHashCode(b) 会发生什么?用的是哪一个?

【问题讨论】:

    标签: c# .net vb.net clr


    【解决方案1】:

    IEqualityComparer&lt;T&gt; 接口用于比较器 对象。所以,不……你不会已经有一个实例作为实现的一部分。

    您可能会想到IEquatable&lt;T&gt;,它通过被比较的对象类型来实现。

    【讨论】:

    • 呃。我完全在考虑 IEquatable 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    相关资源
    最近更新 更多