我已经阅读了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)
{
}
}
我错过了什么?
答案 0 :(得分:5)
我认为您提到的other post表示EqualityComparer<Box>
实施IEqualityComparer<Box>
和IEqualityComparer
,因此您不必实施通用和非{通用接口,如果您派生自EqualityComparer<Box>
。