2012-03-04 15 views
8

Ho letto questo post ma non risponde alla mia domanda.IEqualityComparer vs EqualityComparer?

MSDN says:

Si consiglia di trarre dalla EqualityComparer (Of T) classe invece di attuare l'IEqualityComparer (Of T) di interfaccia, perché l'EqualityComparer (Of T) Prove di classe per l'uguaglianza utilizzando il Metodo IEquatable (Of T) .Equal anziché il metodo Object.Equals.

ma se guardo l'attuazione, entrambi utilizzano il tipo generico:

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

Che cosa mi manca?

+3

Nessuna idea. Questa affermazione non ha senso per me. – CodesInChaos

+0

Le risposte all'altra domanda hanno già spiegato che questa affermazione non ha senso. Quindi non capisco cosa ti aspetti da questa domanda. – CodesInChaos

+3

possibile duplicato di [Preferendo EqualityComparer a IEqualityComparer ] (http://stackoverflow.com/questions/5707347/preferring-equalitycomparert-to-iequalitycomparert) – CodesInChaos

risposta

3

Credo che il other post si parla sta dicendo che EqualityComparer<Box> implementa IEqualityComparer<Box> e IEqualityComparer, in modo da non dover implementare entrambe le interfacce generici e non generici se si deriva da EqualityComparer<Box>.

Problemi correlati