11

私はこの投稿を読みましたが、それは私の質問に答えません。

MSDNによると

EqualityComparer(Of T)クラスは、Objectの代わりにIEquatable(Of T).Equalsメソッドを使用して同等性をテストするため、IEqualityComparer(Of T)インターフェイスを実装する代わりにEqualityComparer(Of T)クラスから派生することをお勧めします。等しい方法。

しかし、実装を見ると、どちらもジェネリック型を使用しています。

 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>していると言っていると思いIEqualityComparerます。したがって、から派生した場合は、ジェネリックインターフェイスと非ジェネリックインターフェイスの両方を実装する必要はありませんEqualityComparer<Box>

于 2015-02-20T17:21:38.557 に答える