Junior — Middle
Niyə .NET sinifində GetHashCode və Equals metodları yenidən təyin edilir?
sobes.tech Süni İntellekt
AI-dan cavab
.NET-də, GetHashCode və Equals metodları obyektlərin düzgün müqayisəsi və kolleksiyalarla, məsələn, Sözlüklər (Dictionary) və Kümələr (HashSet), düzgün işləməsi üçün yenidən təyin edilir.
- Equals iki obyektin mənada bərabər sayılmasını müəyyən edir.
- GetHashCode, obyektin tez tapılması üçün istifadə olunan ədədi kodu qaytarır.
Əgər yalnız Equals yenidən təyin etsəniz, lakin GetHashCode-u təyin etməsəniz, obyektlər hash kolleksiyalarında düzgün işləməyə bilər. Bu metodlar adətən birlikdə yenidən təyin edilir ki, uyğunluq təmin olunsun: əgər Equals iki obyekt üçün true qaytarırsa, onların GetHashCode də eyni dəyəri qaytarmalıdır.
Nümunə:
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);
}
}