J'ai une classe qui contient les deux propriétés suivantes:
public int Id { get; private set; }
public T[] Values { get; private set; }
Je l'ai fait IEquatable<T>
et écrasé le object.Equals
comme ceci:
public override bool Equals(object obj)
{
return Equals(obj as SimpleTableRow<T>);
}
public bool Equals(SimpleTableRow<T> other)
{
// Check for null
if(ReferenceEquals(other, null))
return false;
// Check for same reference
if(ReferenceEquals(this, other))
return true;
// Check for same Id and same Values
return Id == other.Id && Values.SequenceEqual(other.Values);
}
Lorsque vous avez annulé object.Equals
I, vous devez également ignorer GetHashCode
de cours. Mais quel code dois-je implémenter? Comment créer un hashcode à partir d'un tableau générique? Et comment puis-je le combiner avec l'entier Id
?
public override int GetHashCode()
{
return // What?
}