Junior — Middle
Կան իրավիճակներ, երբ ձեզ հարկավոր էր վերաշարադրել equals() մեթոդը ձեր դասերում?
sobes.tech AI
Պատասխան AI-ից
Այո, Equals() մեթոդի վերագրանցումը C#-ում հաճախ անհրաժեշտ է, երբ ցանկանում եք համեմատել օբյեկտները արժեքով, ոչ թե հղումով։ Օրինակ, եթե ունեք Person դաս, որի դաշտերը Name և Age, և ցանկանում եք երկու օբյեկտները համարվել հավասար, եթե այդ դաշտերը համընկնեն, ապա պետք է վերագրանցել Equals() և 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);
}
}
Սա կարևոր է ճիշտ հավաքածուների աշխատանքի համար, օրինակ, HashSet<Person> կամ օբյեկտների համեմատության ժամանակ թեստերում։