Junior — Middle
Роли методу GetHashCode дар истифодаи луғат ё коллексияи хеш чист?
sobes.tech AI
Ҷавоб аз AI
Метод GetHashCode играе ключова роля при използването на речници (Dictionary) и други колекции за хеширане в C#. Той връща цяло число (хеш код), което се използва за бързо определяне на позицията на обект в хеш таблицата.
Когато добавяте обект към речник, първо се извиква GetHashCode, за да се определи кошът (bucket), в който ще бъде поставен елементът. При търсене на елемент по ключ, също първо се изчислява хеш кодът, за да се намери бързо правилният кош, и след това се извиква Equals за точно сравнение.
Важно е да:
- Ако два обекта са равни (Equals връща true), техните GetHashCode трябва да връщат еднаква стойност.
- Добре разпределените хеш кодове намаляват броя на колизиите и подобряват производителността.
Пример за презаписване:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override bool Equals(object obj)
{
if (obj is Person other)
return Name == other.Name && Age == other.Age;
return false;
}
public override int GetHashCode()
{
return HashCode.Combine(Name, Age);
}
}