Penjelasan dan Penggunaan Enumeration C# di Asp.Net

Type enumeration (juga disebut enumeration atau enum) menyediakan cara yang efisien untuk menentukan satu set konstanta integral yang disebutkan yang mungkin diberikan ke variabel.
Sebagai contoh, asumsikan bahwa kita harus mendefinisikan sebuah variabel yang nilainya akan mewakili hari dalam seminggu. Hanya ada tujuh nilai bermakna yang akan disimpan oleh variabel itu. Untuk menentukan nilai tersebut, kita bisa menggunakan jenis enumeration, yang dideklarasikan dengan menggunakan keyword enum.

enum Day { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
enum Month : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }; 
Secara default base type setiap elemen dalam enum adalah int. Kita dapat menentukan tipe numerik integral lainnya dengan menggunakan titik dua, seperti yang ditunjukkan pada contoh sebelumnya. Kita dapat memverifikasi nilai numerik yang mendasari dengan melakukan casting ke tipe yang mendasarinya, seperti ditunjukkan oleh contoh berikut.
Day today = Day.Monday;
int dayNumber =(int)today;
Console.WriteLine("{0} is day number #{1}.", today, dayNumber);

Month thisMonth = Month.Dec;
byte monthNumber = (byte)thisMonth;
Console.WriteLine("{0} is month number #{1}.", thisMonth, monthNumber);

// Output:
// Monday is day number #1.
// Dec is month number #11.
Berikut ini adalah keuntungan menggunakan enum dan bukan tipe numerik:
1. Kita jelas menentukan client code yang nilainya valid untuk variabel.
2. Dalam Visual Studio, IntelliSense mencantumkan nilai yang ditentukan.

Bila kita tidak menentukan nilai untuk elemen dalam daftar pencacah, nilainya akan bertambah secara otomatis dengan 1. Pada contoh sebelumnya, Day.Sunday memiliki nilai 0, Day.Monday memiliki nilai 1, dan seterusnya. Bila kita membuat objek Day yang baru, itu akan memiliki nilai default Day.Sunday (0) jika kita tidak menetapkan nilai secara eksplisit.

Bila kita membuat enum, pilih nilai default yang paling logis dan beri nilai nol. Itu akan menyebabkan semua enums memiliki nilai default jika tidak diberi nilai secara eksplisit saat dibuat.
Jika variabel meetingDay adalah tipe Day, maka (tanpa cast eksplisit) kita hanya bisa menetapkan salah satu dari nilai yang ditentukan oleh Day. Dan jika hari pertemuan berubah, kita bisa menetapkan nilai baru dari Day to meetingDay:
Day meetingDay = Day.Monday;
//...
meetingDay = Day.Friday;
Kita dapat menetapkan nilai apapun ke elemen dalam daftar enumerator dari type enumerasi, dan kita juga dapat menggunakan nilai yang dihitung:
enum MachineState
{
    PowerOff = 0,
    Running = 5,
    Sleeping = 10,
    Hibernating = Sleeping + 5
}
Previous
Next Post »