Ο τύπος enum στη γλώσσα C# είναι ένας τύπος δεδομένων που χρησιμοποιείται για τον ορισμό μιας σειράς σταθερών τιμών με ονόματα. Ας παραφράσουμε τις έννοιες που συνδέονται με τον τύπο enum:

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

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

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

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

Για να δημιουργήσετε ένα enum, χρησιμοποιήστε τη λέξη-κλειδί enum (αντί για class ή interface) και χωρίστε τα στοιχεία του enum με κόμμα:

enum DaysOfWeek
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

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

Μπορούμε να χρησιμοποιήσουμε το enum DaysOfWeek για να αποθηκεύσουμε την ημέρα της εβδομάδας σε μια μεταβλητή:

DaysOfWeek today = DaysOfWeek.Monday;

Σε αυτό το παράδειγμα, αποθηκεύουμε την τιμή Monday (Δευτέρα) του enum DaysOfWeek στη μεταβλητή today.

Μπορείτε επίσης να έχετε ένα enum μέσα σε μια κλάση:

using System;

class MyClass
{
    // Δήλωση ενός enum με την ονομασία Colors
    enum Colors
    {
        Red,
        Green,
        Blue
    }

    // Δημιουργία μιας δημόσιας μεθόδου με την ονομασία PrintColor
    public void PrintColor()
    {
        // Εκτύπωση του στοιχείου Red από τον enum Colors
        Console.WriteLine(Colors.Red);
    }
}

Στο παραπάνω παράδειγμα, έχουμε ένα enum με όνομα Colors μέσα στην κλάση MyClass. Το enum περιέχει τις τιμές Red, Green και Blue.

[adinserter block=”2″]

Η κλάση MyClass διαθέτει μια μέθοδο PrintColor() που εκτυπώνει την τιμή Colors.Red. Αυτή η μέθοδος μπορεί να κληθεί από ένα αντικείμενο της κλάσης MyClass.

MyClass myObject = new MyClass();
myObject.PrintColor(); // Εκτυπώνει "Red"

Σε αυτό το παράδειγμα, δημιουργούμε ένα αντικείμενο της κλάσης MyClass και καλούμε τη μέθοδο PrintColor(), η οποία εκτυπώνει την τιμή Colors.Red από το enum που βρίσκεται μέσα στην κλάση MyClass.

Από προεπιλογή, το πρώτο στοιχείο ενός enum έχει την τιμή 0. Το δεύτερο έχει την τιμή 1 και ούτω καθεξής.

Για να λάβετε την ακέραια τιμή από ένα στοιχείο του enum, πρέπει να το μετατρέψετε ρητά σε int:

enum Colors
{
    Red,
    Green,
    Blue
}

int redValue = (int)Colors.Red;
Console.WriteLine(redValue); // Εκτυπώνει 0

Σε αυτό το παράδειγμα, μετατρέπουμε την τιμή Colors.Red σε int με τη χρήση του casting (int)Colors.Red και την αποθηκεύουμε στη μεταβλητή redValue. Η μεταβλητή redValue έχει την τιμή 0, αφού το πρώτο στοιχείο του enum Colors έχει την τιμή 0.

Μπορείτε επίσης να ορίσετε τις δικές σας τιμές για τα στοιχεία ενός enum, και τα επόμενα στοιχεία θα ενημερώσουν αυτόματα τις τιμές τους ανάλογα:

using System;

// Δήλωση ενός enum με τα χρώματα και τις αντίστοιχες τους αριθμητικές τιμές
enum Colors
{
    Red = 10,
    Green = 20,
    Blue = 30
}

// Αποθήκευση της αριθμητικής τιμής του πράσινου χρώματος στη μεταβλητή greenValue
int greenValue = (int)Colors.Green;

// Εκτύπωση της τιμής της μεταβλητής greenValue
Console.WriteLine(greenValue); // Εκτυπώνει 20

Σε αυτό το παράδειγμα, αντιστοιχούμε τις τιμές 10, 20 και 30 στα στοιχεία Red, Green και Blue του enum Colors αντίστοιχα. Το στοιχείο Green έχει την τιμή 20, και μετατρέποντάς το σε int, η μεταβλητή greenValue θα έχει την τιμή 20.

Τα enums χρησιμοποιούνται συχνά σε δηλώσεις switch για να ελέγξουν τις αντίστοιχες τιμές:

enum DaysOfWeek
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

DaysOfWeek today = DaysOfWeek.Wednesday;

switch (today)
{
    case DaysOfWeek.Monday:
        Console.WriteLine("It's Monday!");
        break;
    case DaysOfWeek.Tuesday:
        Console.WriteLine("It's Tuesday!");
        break;
    case DaysOfWeek.Wednesday:
        Console.WriteLine("It's Wednesday!");
        break;
    case DaysOfWeek.Thursday:
        Console.WriteLine("It's Thursday!");
        break;
    case DaysOfWeek.Friday:
        Console.WriteLine("It's Friday!");
        break;
    case DaysOfWeek.Saturday:
        Console.WriteLine("It's Saturday!");
        break;
    case DaysOfWeek.Sunday:
        Console.WriteLine("It's Sunday!");
        break;
    default:
        Console.WriteLine("Invalid day");
        break;
}

Σε αυτό το παράδειγμα, δηλώνουμε ένα enum DaysOfWeek με τις ημέρες της εβδομάδας. Έπειτα, δημιουργούμε μια μεταβλητή today με την τιμή DaysOfWeek.Wednesday.

Στην δήλωση switch, ελέγχουμε την τιμή της μεταβλητής today και εκτελούμε τον κατάλληλο κώδικα για την αντίστοιχη ημέρα. Σε αυτή την περίπτωση, εκτυπώνουμε το μήνυμα “It’s Wednesday!”. Αν η τιμή δεν αντιστοιχεί σε καμία από τις περιπτώσεις του switch, εκτελείται ο κώδικας του default, όπου εκτυπώνουμε “Invalid day”.

Έξοδος:

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