Sobes.tech
Junior — Middle

Ինչ արդյունք է տալիս GetHashCode մեթոդի կանչը .NET-ում օբյեկտի վրա?

sobes.tech AI

Պատասխան AI-ից

GetHashCode մեթոդը .NET-ում վերադարձնում է ամբողջ թիվ (հեշ-կոդ), որը օգտագործվում է օբյեկտների արագ համեմատության համար, օրինակ՝ հեշ աղյուսակներում (Dictionary, HashSet) պահելու ժամանակ։ Դրա նախնական արժեքը ստեղծվում է օբյեկտի ներքին վիճակի հիման վրա, բայց կարող է վերագրել, որպեսզի ապահովի ճիշտ աշխատանքը հավաքածուներում և օբյեկտների համեմատության ժամանակ։

GetHashCode և Equals մեթոդների միաժամանակ վերագրելու օրինակ՝

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);
    }
}

Կարևոր է, որ Equals-ով համարվող հավասար օբյեկտները ունենան նույն հեշ-կոդը։