Quiero que mi clase Food
pueda probar cada vez que sea igual a otra instancia de Food
. Más tarde lo usaré contra una Lista, y quiero usar su método List.Contains()
. ¿Debería implementar IEquatable<Food>
o simplemente anular Object.Equals()
? De MSDN:¿Cuál es la diferencia entre IEquatable y simplemente anulando Object.Equals()?
Este método determina la igualdad de utilizando el comparador de igualdad predeterminado, según lo definido por la implementación del objeto del método IEquatable.Equals para T (el tipo de valores en la lista).
Así que mi siguiente pregunta es: ¿qué funciones/clases del .NET framework hacen uso de Object.Equals()
? ¿Debería usarlo en primer lugar?
Una muy buena explicación aquí 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: eso ya se mencionó en la respuesta aceptada. –
posible duplicado de [Entender IEquatable] (http://stackoverflow.com/questions/411500/understanding-iequatable) – nawfal