Enum adalah tipe data berguna yang memungkinkan Anda menentukan daftar opsi bernama untuk variabel. Misalnya, jika Anda ingin menyimpan setiap hari dalam seminggu, Anda dapat menggunakan enum untuk mewakili nilai yang valid.
Enum membuat kode Anda lebih mudah dibaca dan ditulis dengan mendorong nama yang bermakna dan membatasi nilai yang dapat Anda gunakan. Seringkali nyaman menggunakan pernyataan switch untuk menangani nilai yang mungkin dari enum.
Anda dapat mendeklarasikan dan menggunakan enum dalam banyak bahasa pemrograman, termasuk C#.
Cara Mendeklarasikan Enum di C#
Di C#, Anda biasanya akan mendeklarasikan enum di tingkat namespace. Misalnya, dalam aplikasi konsol C#, Anda dapat mendeklarasikan enum sebagai properti kelas. Anda dapat melihat contohnya di sini repo GitHub.
kelasProgram
{
enum Hari kerja {
Senin,
Selasa,
Rabu,
Kamis,
Jumat,
Sabtu,
Minggu
}
statisruang kosongUtama(rangkaian[] arg)
{
}
}
Saat Anda mendeklarasikan enum, setiap opsi mendapatkan nilai integer untuk mewakili indeksnya. Secara default, nilai pertama di enum memiliki nilai indeks 0. Untuk mengubahnya, Anda dapat menentukan indeks Anda sendiri untuk elemen pertama saat Anda mendeklarasikan enum:
enum Hari kerja {
Senin = 1,
Selasa,
Rabu,
Kamis,
Jumat,
Sabtu,
Minggu
}
Dalam hal ini, indeks elemen pertama Senin dimulai pada 1. Indeks elemen berikutnya Selasa akan 2, dan seterusnya.
Cara Mengakses Nilai Enum di C#
Ada banyak cara berbeda untuk mengakses nilai yang disimpan di dalam enum. Nilai yang dikembalikan untuk setiap opsi dalam enum adalah indeks. Untuk contoh ini, nilai dari Hari kerja. Jumat adalah 5.
Salah satu cara Anda dapat mengambil nama enum adalah dengan menggunakan Enum. DapatkanNama() fungsi. Ini mendapatkan nama opsi di indeks 5:
rangkaian jumat = Enum. DapatkanNama(jenis(Hari kerja), Hari kerja. Jumat);
Menghibur. Garis Tulis("Alhamdulillah sudah" + jumat + "!");
// Keluaran = Syukurlah ini hari Jumat!
Anda juga dapat mengakses nilai menggunakan indeksnya. Dalam hal ini, nilai pada indeks 2 di enum Hari Kerja (yaitu Selasa) akan disimpan dalam variabel:
Hari kerja selasa = (Hari kerja)2;
Menghibur. Garis Tulis("Hari ini adalah " + selasa);
// Keluaran = Hari ini Selasa
Saat Anda memasukkan enum sebagai argumen Menghibur. WriteLine(), itu keString() metode untuk enum berjalan secara otomatis. Ini berarti bahwa alih-alih mencetak nilai numerik sebenarnya dari enum, yaitu 5, itu akan mencetak nilai string, Jumat.
Menghibur. WriteLine (Hari kerja. Kamis + " yang baru " + Hari kerja. Jumat);
// Keluaran = Kamis adalah Jumat baru
Anda juga bisa mengonversi atau mengurai tipe data menjadi bilangan bulat sebagai cara lain untuk menyimpan indeks opsi:
int SeninIndeks = (int)Hari kerja. Senin;
Menghibur. WriteLine (mondayIndex);
// Keluaran = 1
Bagaimana Membandingkan Enum di C#
Di C#, Anda dapat membandingkan enum menggunakan operator pembanding (==, !=, , <=, >=). Ini akan membandingkan nilai numerik dari opsi.
Hari kerja hari1 = Hari kerja. Senin;
Hari kerja hari2 = Hari kerja. Selasa;
jika (hari1 == hari2)
{
Menghibur. Garis Tulis("Hari-harinya sama.");
}
kalau tidak
{
Menghibur. Garis Tulis("Hari-harinya berbeda.");
}
Dalam contoh ini, nilai Weekday. Senin adalah 1, dan nilai Hari Kerja. Selasa adalah 2, jadi 1 == 2 perbandingan akan gagal.
Cara lain untuk membandingkan enum adalah Sama dengan() metode:
jika (hari1.Sama dengan (hari2))
{
Menghibur. Garis Tulis("Hari-harinya sama.");
}
kalau tidak
{
Menghibur. Garis Tulis("Hari-harinya berbeda.");
}
Anda juga bisa gunakan pernyataan saklar C# untuk membandingkan nilai terhadap setiap opsi dalam enum. Dalam contoh ini, kode akan termasuk dalam kasus Rabu:
Nilai hari kerjaToCompare = Hari kerja. Rabu;
mengalihkan (nilaiUntukMembandingkan)
{
kasus Hari kerja. Senin:
Menghibur. Garis Tulis("Aku butuh kopi.");
merusak;
kasus Hari kerja. Selasa:
Menghibur. Garis Tulis("Aku butuh kopi.");
merusak;
kasus Hari kerja. Rabu:
Menghibur. Garis Tulis("Aku butuh kopi.");
merusak;
kasus Hari kerja. Kamis:
Menghibur. Garis Tulis("Kamis adalah hari Jumat yang baru!");
merusak;
kasus Hari kerja. Jumat:
Menghibur. Garis Tulis("Syukurlah hari ini Jumat!");
merusak;
kasus Hari kerja. Sabtu:
Menghibur. Garis Tulis("Hari favoritku!");
merusak;
kasus Hari kerja. Minggu:
Menghibur. Garis Tulis("Hari favoritku yang lain!");
merusak;
bawaan:
Menghibur. Garis Tulis("Hari tidak valid dalam seminggu.");
merusak;
}
Cara Mengulang Enum di C#
Anda dapat mengulangi enum dalam C# menggunakan Enum. Dapatkan Nilai() metode, yang mengembalikan array dari semua nilai dalam enum. Cuplikan kode ini dicetak setiap hari dalam seminggu, termasuk Senin, Selasa, dan seterusnya:
untuk setiap (Hari kerja di dalam Enum. Dapatkan Nilai(jenis(Hari kerja)))
{
Menghibur. Garis Tulis((int)hari); // Untuk mencetak index
Menghibur. WriteLine (hari); // Untuk mencetak nilai teks
}
Anda juga dapat mengulangi nilai enum menggunakan Enum. DapatkanNama() metode. Ini mengembalikan daftar nilai string untuk mewakili nama untuk opsi enum:
untuk setiap (rangkaian nama di dalam Enum. DapatkanNama(jenis(Hari kerja)))
{
int indeks = (int)(Hari Kerja) Enum. Mengurai(jenis(Hari kerja), nama);
Menghibur. WriteLine (indeks); // Untuk mencetak index
Menghibur. WriteLine (nama); // Untuk mencetak nilai teks
}
Menggunakan Enum di C#
Anda dapat menggunakan enum dalam kode Anda untuk membuatnya lebih mudah dibaca dan tidak rentan terhadap bug. Enum juga bisa sangat berguna saat dipasangkan dengan struktur lain, seperti kamus.