Junior — Middle
Натиҷа чӣ гуна аст, вақте ки усули GetHashCode-ро дар объект дар .NET даъват мекунем?
sobes.tech AI
Ҷавоб аз AI
Метод GetHashCode дар .NET баро қайтардани арзиши ададии (код хеш) истифода мешавад, ки барои муқоисаи тезтари объектҳо, масалан, дар ҷадвалҳои хеш (Dictionary, HashSet) истифода мешавад. Ба таври пешфарз, он бар асоси ҳолати дохилии объект тавлид мешавад, аммо метавонад нависандагӣ шавад, то кор дар коллектсияҳо ва дар муқоиса кардани объектҳо дуруст бошад.
Масалан барои навиштани GetHashCode дар ҳамроҳ бо Equals:
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);
}
}
Муҳим аст, ки объектҳое, ки бар асоси Equals баробар ҳисобида мешаванд, ҳамон код хешро дошта бошанд.