5.7 Ιδιότητες (Properties) – Μέθοδοι Get και Set στη γλώσσα C#

Οι ιδιότητες (properties) στη γλώσσα προγραμματισμού C# επιτρέπουν την πρόσβαση και την τροποποίηση των τιμών ιδιωτικών πεδίων μέσω των μεθόδων Get και Set. Η χρήση ιδιοτήτων επιτρέπει τον έλεγχο της πρόσβασης σε δεδομένα και την εφαρμογή της αρχής της ενθυλάκωσης (encapsulation).

Για να ορίσετε μια ιδιότητα, χρησιμοποιείτε τη δήλωση property με ένα όνομα και τον τύπο δεδομένων που αντιπροσωπεύει η ιδιότητα. Στη συνέχεια, ορίζετε μια μέθοδο Get και μια μέθοδο Set, οι οποίες αναλαμβάνουν την ανάγνωση και την εγγραφή της τιμής της ιδιότητας αντίστοιχα.

Ας δούμε ένα παράδειγμα:

class Person
{
    private string name;
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

Στο παραπάνω παράδειγμα, έχουμε την κλάση Person με ένα ιδιωτικό πεδίο name. Η ιδιότητα Name παρέχει πρόσβαση στο ιδιωτικό πεδίο name μέσω μιας μεθόδου Get και μιας μεθόδου Set. Η μέθοδος Get επιστρέφει την τιμή του πεδίου name, ενώ η μέθοδος Set θέτει την τιμή του πεδίου name ίση με την τιμή που παρέχεται ως παράμετρος.

Για να αποκτήσουμε πρόσβαση στην ιδιότητα Name και να την τροποποιήσουμε, μπορούμε να το κάνουμε ως εξής:

Person person = new Person();
person.Name = "John"; // Ορίζει την τιμή της ιδιότητας Name
string name = person.Name; // Ανάγνωση της τιμής της ιδιότητας Name

Στο παραπάνω παράδειγμα, χρησιμοποιούμε την ιδιότητα Name για να ορίσουμε την τιμή του πεδίου name σε “John” και να αναγνώσουμε την τρέχουσα τιμή του πεδίου name στη μεταβλητή name.

[adinserter block=”2″]

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

Οι ιδιότητες (properties) είναι ένας τρόπος να προσπελάσουμε και να ρυθμίσουμε τιμές μεταβλητών μέσω ειδικών μεθόδων στη γλώσσα προγραμματισμού C#.

Μια ιδιότητα αποτελείται από δύο μεθόδους, μια μέθοδο “get” και μια μέθοδο “set”. Η μέθοδος “get” χρησιμοποιείται για να επιστραφεί η τιμή της ιδιότητας, ενώ η μέθοδος “set” χρησιμοποιείται για να οριστεί η τιμή της ιδιότητας. Η χρήση ιδιοτήτων μας επιτρέπει να προσφέρουμε μια εξωτερική προσπέλαση σε μεταβλητές που είναι καθορισμένες ως ιδιότητες, ενώ εσωτερικά μπορούμε να προσθέσουμε επιπλέον λογική ή επικύρωση των τιμών που προσπελαύνονται.

Παρακάτω παρουσιάζεται ένα παράδειγμα με μια ιδιότητα “Name”:

class Person
{
    private string name;
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

Στο παραπάνω παράδειγμα, η ιδιότητα “Name” είναι ορισμένη ως public, επιτρέποντας έτσι την προσπέλαση της από άλλα αντικείμενα. Η μέθοδος “get” επιστρέφει την τιμή της μεταβλητής “name”, ενώ η μέθοδος”set” ορίζει την τιμή της μεταβλητής “name” βάσει της τιμής που περνιέται σαν παράμετρος.

Η χρήση ιδιοτήτων μας επιτρέπει να έχουμε έλεγχο και ευελιξία κατά την πρόσβαση και την αλλαγή των τιμών μεταβλητών μέσω ειδικών μεθόδων, παρέχοντας έτσι ένα επίπεδο αφαίρεσης και ασφάλειας στον κώδικα μας.

Για να αποκτήσουμε πρόσβαση στην ιδιότητα Name και να την τροποποιήσουμε, μπορούμε να το κάνουμε ως εξής:

Person person = new Person();
person.Name = "John"; // Ορίζει την τιμή της ιδιότητας Name
string name = person.Name; // Ανάγνωση της τιμής της ιδιότητας Name

Στο παραπάνω παράδειγμα, χρησιμοποιούμε την ιδιότητα Name για να ορίσουμε την τιμή του πεδίου name σε “John” και να αναγνώσουμε την τρέχουσα τιμή του πεδίου name στη μεταβλητή name.

Οι ιδιότητες παρέχουν μια ευέλικτη τρόπο για την πρόσβαση και την ενημέρωση δεδομένων και μπορούν να χρησιμοποιηθούν για την εφαρμογή αρχών της ενθυλάκωσης (encapsulation) και της προστασίας των δεδομένων.

Τώρα μπορούμε να χρησιμοποιήσουμε την ιδιότητα Name για να αποκτήσουμε πρόσβαση και να ενημερώσουμε το ιδιωτικό πεδίο της κλάσης Person:

Person person = new Person();
person.Name = "John"; // Ορίζει την τιμή της ιδιότητας Name
string name = person.Name; // Ανάγνωση της τιμής της ιδιότητας Name

Στο παραπάνω παράδειγμα, χρησιμοποιούμε την ιδιότητα Name για να ορίσουμε την τιμή του ιδιωτικού πεδίου name σε “John” χρησιμοποιώντας τον setter της ιδιότητας. Στη συνέχεια, αποθηκεύουμε την τρέχουσα τιμή του ιδιωτικού πεδίου name στη μεταβλητή name χρησιμοποιώντας τον getter της ιδιότητας.

Η χρήση ιδιοτήτων είναι μια χρήσιμη τεχνική στη γλώσσα προγραμματισμού C#, καθώς μας επιτρέπει να διαχειριστούμε τα δεδομένα με περισσότερο έλεγχο και ασφάλεια. Μέσω των μεθόδων get και set μιας ιδιότητας, μπορούμε να εφαρμόσουμε λογική επικύρωσης ή περιορισμών στην ανάγνωση και την εγγραφή των δεδομένων.

Επιπλέον, μπορούμε να προσθέσουμε ειδικές λειτουργίες, όπως επικεφαλίδες ή ειδικές μεθόδους επικύρωσης, που επεξεργάζονται τις τιμές πριν από την ανάγνωση ή την εγγραφή τους.

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

Στην γλώσσα C#, υπάρχει επίσης η δυνατότητα χρήσης συντομευμένης σύνταξης ή αυτόματων ιδιοτήτων (short-hand / automatic properties). Αυτό σημαίνει ότι δεν χρειάζεται να ορίσουμε ένα ιδιωτικό πεδίο για την ιδιότητα, αλλά αρκεί να γράψουμε μόνο το get; και το set; μέσα στον ορισμό της ιδιότητας.

Το παρακάτω παράδειγμα θα παράγει το ίδιο αποτέλεσμα με το παράδειγμα που παρουσιάστηκε παραπάνω. Η μόνη διαφορά είναι ότι υπάρχει λιγότερος κώδικας:

class Person
{
    public string Name { get; set; }
}

Στο παραπάνω παράδειγμα, ορίζουμε την ιδιότητα Name χρησιμοποιώντας τη συντομευμένη σύνταξη. Δεν χρειάζεται να ορίσουμε ένα ιδιωτικό πεδίο για την ιδιότητα. Το πεδίο και οι μέθοδοι get και set για την ιδιότητα γεννούνται αυτόματα από τον μεταγλωττιστή.

[adinserter block=”3″]

Οι συντομευμένες ιδιότητες είναι ένας τρόπος για να απλοποιήσετε τη δήλωση ιδιοτήτων όταν δεν απαιτείται ειδική λογική για την ανάγνωση ή την εγγραφή των δεδομένων. Μπορείτε να χρησιμοποιήσετε τις συντομευμένες ιδιότητες όταν απλώς χρειάζεστε πρόσβαση στην τιμή της ιδιότητας ή όταν θέλετε να αλλάξετε την τιμή της ιδιότητας χωρίς πρόσθετη λογική ή επικύρωση.

Η χρήση συντομευμένων ιδιοτήτων καθιστά τον κώδικα σας πιο συνοπτικό και ευανάγνωστο.

Η ενθυλάκωση (encapsulation) αναφέρεται σε μια αρχή του αντικειμενοστραφούς προγραμματισμού που συνεισφέρει στην οργάνωση και διαχείριση του κώδικα. Προσφέρει ορισμένα οφέλη, όπως:

  • Καλύτερος έλεγχος των μελών της κλάσης: Η ενθυλάκωση σας επιτρέπει να ορίσετε την πρόσβαση σε μέλη της κλάσης, όπως πεδία και μεθόδους. Μπορείτε να περιορίσετε την πρόσβαση σε κρίσιμα μέλη και να μειώσετε τον κίνδυνο αλλοίωσης ή εσφαλμένης χρήσης τους από άλλον κώδικα.
  • Πεδία μόνο για ανάγνωση ή μόνο για εγγραφή: Με τη χρήση ιδιοτήτων (properties), μπορείτε να ορίσετε πεδία που είναι προσπελάσιμα μόνο για ανάγνωση (με τη μέθοδο get) ή μόνο για εγγραφή (με τη μέθοδο set). Αυτό σας επιτρέπει να καθορίσετε τις δυνατότητες πρόσβασης σε δεδομένα και να αποτρέψετε ανεπιθύμητες αλλαγές ή ανάγνωσης.
  • Ευελιξία: Η ενθυλάκωση σας επιτρέπει να αλλάξετε μέρος του κώδικα χωρίς να επηρεάσετε άλλα μέρη. Μπορείτε να αλλάξετε την υλοποίηση μιας κλάσης, αλλά οι άλλες κλάσεις που την χρησιμοποιούν δεν χρειάζεται να αλλάξουν τον κώδικά τους. Αυτό καθιστά τον κώδικα πιο ευέλικτο και ευκολότερο στη συντήρηση.
  • Αυξημένη ασφάλεια των δεδομένων: Η ενθυλάκωση σας επιτρέπει να προστατεύσετε τα δεδομένα με την περιορισμένη πρόσβαση σε αυτά. Μπορείτε να καθορίσετε ποια μέλη της κλάσης είναι προσπελάσιμα από άλλες κλάσεις και ποια δεδομένα είναι ιδιωτικά. Αυτό προσθέτει επίπεδο ασφάλειας στην εφαρμογή σας και μειώνει τον κίνδυνο ανεπιθύμητης τροποποίησης ή πρόσβασης σε δεδομένα.

Συνολικά, η ενθυλάκωση βελτιώνει τον έλεγχο, την ασφάλεια και την ευελιξία του κώδικά σας, προάγοντας έναν καλύτερο σχεδιασμό και οργάνωση της εφαρμογής σας.

21 Αυγούστου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων