Desidero che la mia classe Food
sia in grado di eseguire il test ogni volta che è uguale a un'altra istanza di Food
. Lo utilizzerò in seguito contro un elenco e voglio utilizzare il suo metodo List.Contains()
. Devo implementare IEquatable<Food>
o sostituire solo Object.Equals()
? Da MSDN:Qual è la differenza tra IEquatable e l'override di Object.Equals()?
Questo metodo determina uguaglianza utilizzando il confronto uguaglianze predefinito, come definito dal attuazione dell'oggetto del metodo IEquatable.Equals per T (il tipo di valori nell'elenco).
Quindi la mia prossima domanda è: quali funzioni/classi del framework .NET fanno uso di Object.Equals()
? Dovrei usarlo in primo luogo?
Una spiegazione molto buona qui http://blogs.msdn.com/b/jaredpar/archive/2009/01/15/if-you-implement-iequatable-t-you-still-must-override-object- s-equals-and-gethashcode.aspx – nawfal
@nawfal: che era già riferito nella risposta accettata. –
possibile duplicato di [Understanding IEquatable] (http://stackoverflow.com/questions/411500/understanding-iequatable) – nawfal