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 να έχουν τον ίδιο κωδικό κατακερματισμού.