Junior — Middle
რა არის ობიექტში GetHashCode მეთოდის გადაწერას მიზანი?
sobes.tech AI
პასუხი AI-სგან
ობიექტში GetHashCode მეთოდის გადაწერაა აუცილებელი ჰეშ-ცხრილების და კოლექციების, როგორიცაა Dictionary ან HashSet, სწორად მუშაობისთვის. ეს მეთოდი აბრუნებს ობიექტის რიცხვობრივ ჰეშ-კოდს, რომელიც გამოიყენება სწრაფი ძიებისა და შედარებისთვის.
თუ გადაწერთ Equals მეთოდს ობიექტების შინაარსის მიხედვით შედარებისთვის, აუცილებელია ასევე გადაწეროთ GetHashCode, რათა თანაბარად მიჩნეული ობიექტები ჰქონდეთ ერთნაირი ჰეშ-კოდი. წინააღმდეგ შემთხვევაში, კოლექციები შეიძლება არასწორად მუშაობდეს.
მაგალითი:
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);
}
}
აქ, GetHashCode უზრუნველყოფს, რომ ორი ობიექტი, რომლებსაც იგივე Name და Age აქვთ, ერთნაირი ჰეშ-კოდს მიიღებენ.