Πώς να λάβετε την τιμή `int` από το `Enum` σε C# με παραδείγματα

Για να λάβετε την τιμή int από το enum σε C#, μετατρέψτε τη μεταβλητή enum σε ακέραιο αριθμό.

On this page

Λύση 1: Χρησιμοποιήστε Type cast για να λάβετε την τιμή int από την enum

Ο προεπιλεγμένος υποκείμενος τύπος για το enums στην C# είναι Int.

Έτσι μπορούμε να κάνουμε type cast το enum στο int για να πάρουμε την ακέραια τιμή από το enum στη C#.

Θα πάρουμε ένα παράδειγμα για να το κατανοήσουμε περαιτέρω.

public enum Days
{
        Monday,  
        Tuesday,  
        Wednesday,  
        Thursday,  
        Friday,  
        Saturday,  
        Sunday
}

Τώρα θα μετατρέψουμε τις τιμές enum σε ακέραιες τιμές.

int mondayValue=(int)Days.Monday; //0
int tuesdayValue=(int)Days.Tuesday; //1
int wednesdayValue=(int)Days.Wednesday; //2
int thursdayValue=(int)Days.Thursday; //3
int fridayValue=(int)Days.Friday; //4
int saturdayValue=(int)Days.Saturday; //5
int sundayValue=(int)Days.Sunday; //6

Λύση 2: Χρησιμοποιήστε τη μέθοδο Convert.ToInt32() για να λάβετε την ακέραια τιμή από την enum

Ή μπορούμε να χρησιμοποιήσουμε τη μέθοδο Convert.ToInt32() to για να μετατρέψουμε ένα enum σε ακέραιο αριθμό, όπως φαίνεται παρακάτω.

int mondayValue=Convert.ToInt32(Days.Moday); //0

Λήψη της τιμής enum διαφορετικών υποκείμενων τύπων

Enums στην C# μπορεί να έχει διαφορετικούς υποκείμενους τύπους

Εάν η C# enum δηλώνεται ως uint, long ή ulong θα πρέπει να την εκχωρήσουμε στον αντίστοιχο τύπο του enum.

Σκεφτείτε το παρακάτω παράδειγμα του Stars enum, το οποίο έχει τύπο long.

enum Stars:long 
{
    Sun = 1, Star1 = 2,Star2=3, .. Startn = n
};

var sunValue = (long)Stars.Sun;//1