Junior — Middle
Ի՞նչ քայլեր պետք է կատարել՝ սեփական դասը որպես բանալի օգտագործելու համար բառարանային հավաքածուի տեսակում։
sobes.tech AI
Պատասխան AI-ից
C# լեզվում Dictionary<TKey, TValue> մեջ սեփական դասը որպես բանալի օգտագործելու համար անհրաժեշտ է ապահովել բանալիների ճիշտ համեմատությունը և նրանց հեշ-կոդերի հաշվարկը: Դրա համար անհրաժեշտ է՝
- Օպտիմալացնել
Equals(object obj)մեթոդը, որպեսզի այն ճիշտ համեմատի ձեր դասի օբյեկտները կարևոր դաշտերով: - Օպտիմալացնել
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);
}
}
Այլընտրանք՝ կարող եք իրականացնել IEqualityComparer<T> ինտերֆեյսը և փոխանցել այն բառարանի կոնստրուկտորին, եթե չեք ցանկանում փոփոխել դասը։