Olá!
Fiquei com uma dúvida na execução do exercício abaixo:
"Na classe Conta, sobrescrevemos o método Equals() para sempre retornar falso:
class Conta
{
public override bool Equals(Object o)
{
return false;
}
}
Em seguida, adicionamos 2 Contas em um conjunto:
var conjunto = new HashSet<Conta>();
var c1 = new Conta();
conjunto.Add(c1);
conjunto.Add(c1);
MessageBox.Show(conjunto.Count.ToString());
Qual a saída desse programa?
( ) 1
( ) 0
( ) Erro em tempo de execução
( ) O código não compila
( ) 2"*
Optei pela primeira opção (1) porque o método sobrescrito foi o Equals() e não o GetHashCode(), conforme explicação:
"A categoria é dada a partir do método GetHashCode(). Todo objeto tem esse método, já que ele é descrito na classe Object, pai de todas as classes no C#."
Mas a resposta certa é a última (2). Por quê?