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;
    }
}
Другие вопросы по тегам