11

我读过这篇文章,但它没有回答我的问题。

MSDN

我们建议您从 EqualityComparer(Of T) 类派生而不是实现 IEqualityComparer(Of T) 接口,因为 EqualityComparer(Of T) 类使用 IEquatable(Of T).Equals 方法而不是 Object 来测试相等性。等于方法。

但是如果我看一下实现,它们都使用通用类型:

 public class AAA:IEqualityComparer<Box>
    {
        public bool Equals(Box x, Box y)
        {
        }

        public int GetHashCode(Box obj)
        {
        }
    }

    public class BBB : EqualityComparer<Box>
    {
        public override bool Equals(Box x, Box y)
        {
        }

        public override int GetHashCode(Box obj)
        {
        }
    }

我错过了什么?

4

1 回答 1

4

我认为您提到的另一篇文章是说EqualityComparer<Box>实现IEqualityComparer<Box>and IEqualityComparer,因此如果您从EqualityComparer<Box>.

于 2015-02-20T17:21:38.557 回答