GetHashCodes - как и когда он используется?
Как хорошо переопределить GetHashCode
метод похож? (например, для класса чистой модели, который содержит три строковых свойства) Существуют ли общие принципы / схемы при написании таких методов? Где именно это используется (кроме HashTables/Dictionaries)? Является ли хорошей идеей полагаться на хэш-код, когда мы сравниваем объектное равенство?
1 ответ
Решение
Мне нравится использовать эту реализацию:
public override int GetHashCode()
{
unchecked
{
int hash = 17;
// Check for null
hash = hash * 29 + field1.GetHashCode();
hash = hash * 29 + field2.GetHashCode();
return hash;
}
}