Quero que minha Foodclasse seja capaz de testar sempre que for igual a outra instância de Food. Mais tarde vou usá-lo em uma lista e quero usar seu List.Contains()método. Devo implementar IEquatable<Food>ou simplesmente substituir Object.Equals()? Do MSDN:
Esse método determina a igualdade usando o comparador de igualdade padrão, conforme definido pela implementação do objeto IEquatable.Equals no método T (o tipo de valores na lista).
Então, minha próxima pergunta é: quais funções / classes da estrutura .NET fazem uso Object.Equals()? Devo usá-lo em primeiro lugar?