IEqualityComparer vs EqualityComparer?

时间:2012-03-04 21:17:06

标签: c# .net-4.0 iequalitycomparer

我已经阅读了post,但它没有回答我的问题。

MSDN says

  

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

但如果我查看实现,他们都使用泛型Type:

 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)
        {
        }
    }

我错过了什么?

1 个答案:

答案 0 :(得分:5)

我认为您提到的other post表示EqualityComparer<Box>实施IEqualityComparer<Box>IEqualityComparer,因此您不必实施通用和非{通用接口,如果您派生自EqualityComparer<Box>

相关问题