Sobes.tech
Junior — Middle

Εξηγήστε τι σημαίνει η δημιουργία αντικειμένων που είναι αμετάβλητα μετά την αρχικοποίησή τους.

sobes.tech AI

Απάντηση από AI

Η δημιουργία αντικειμένων που είναι αμετάβλητα, δηλαδή που δεν αλλάζουν μετά την αρχικοποίησή τους, σημαίνει ότι μόλις το αντικείμενο δημιουργηθεί και τα πεδία του οριστούν, η κατάσταση αυτού του αντικειμένου δεν μπορεί να αλλάξει. Τέτοια αντικείμενα ονομάζονται immutable (αμετάβλητα).

Στη C#, αυτό επιτυγχάνεται, για παράδειγμα, με:

  • δήλωση των πεδίων ως readonly;
  • απουσία setters στις ιδιότητες (μόνο getters);
  • αρχικοποίηση όλων των δεδομένων μέσω του κατασκευαστή.

Πλεονεκτήματα των αμετάβλητων αντικειμένων:

  • Ασφάλεια σε πολλαπλά νήματα χωρίς επιπλέον συγχρονισμό.
  • Απλοποίηση της κατανόησης του κώδικα, καθώς η κατάσταση του αντικειμένου δεν αλλάζει.
  • Χρήση ως κλειδιά σε συλλογές και cache.

Παράδειγμα:

public class Person
{
    public string Name { get; }
    public int Age { get; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

Μετά τη δημιουργία μιας στιγμιότυπου Person, οι ιδιότητές του δεν μπορούν να αλλάξουν.