Sobes.tech
Junior — Middle

.NET da obyektda GetHashCode metodini chaqirish natijasi nima?

sobes.tech AI

AIdan javob

.NET'dagi GetHashCode metodi, obyektlarni tezda taqqoslash uchun ishlatiladigan butun son qiymati (hash-kod) qaytaradi, masalan, Hash jadvalarida (Dictionary, HashSet) saqlashda. Standart holatda, u obyektning ichki holatiga asoslangan holda yaratiladi, lekin to'g'ri ishlashini ta'minlash uchun kolleksiyalarda va obyektlarni taqqoslashda qayta yozilishi mumkin.

GetHashCode va Equals ni birga qayta yozish misoli:

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 bilan teng deb hisoblangan obyektlar bir xil hash-kodga ega bo'lishi muhimdir.