IEqualityComparer vs EqualityComparer?

Roy*_*mir 8 c# .net-4.0 iequalitycomparer

我已经阅读过这篇文章,但它没有回答我的问题.

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)
        {
        }
    }
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

小智 5

我认为,其他后你提到的是说,EqualityComparer<Box>农具IEqualityComparer<Box>IEqualityComparer,所以您不必如果从派生来实现通用和非通用接口两种EqualityComparer<Box>