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