Enums di C#: Panduan Temanmu ke Jenis Enumerated

Hai sana, superstar pemrograman masa depan! Hari ini, kita akan melihat dunia yang menakjubkan dari enums di C#. Jangan khawatir jika Anda belum pernah mendengar tentang mereka sebelumnya - pada akhir tutorial ini, Anda akan menjadi ahli enum! Jadi, mari kita mulai perjalanan menarik ini bersama.

C# - Enums

Apa Itu Enums?

Bayangkan Anda membuat permainan tempat pemain dapat memilih kelas karakter yang berbeda. Anda mungkin memiliki warrior, mage, archer, dan healer. Bagaimana Anda akan mewakili pilihan-pilihan ini dalam kode Anda? Ini adalah tempat enums datang untuk menyelamatkan!

Sebuah enum (singkatan dari enumeration) adalah jenis spesial di C# yang memungkinkan Anda mendefinisikan set konstanta yang dinamai. Itu seperti membuat jenis khusus dengan set nilai yang tetap. Keren, kan?

Mengapa Menggunakan Enums?

  1. Mereka membuat kode Anda lebih mudah dibaca.
  2. Mereka membantu mencegah kesalahan dengan membatasi pilihan ke set yang ditentukan sebelumnya.
  3. Mereka bagus untuk mewakili kategori atau opsi.

Mendeklarasikan Enum

Marilah kita mulai dengan dasar. Berikut adalah cara Anda mendeklarasikan enum:

enum CharacterClass
{
Warrior,
Mage,
Archer,
Healer
}

Dalam contoh ini, kita telah membuat enum yang disebut CharacterClass dengan empat nilai yang mungkin. Secara default, C# memberikan nilai integer ke setiap anggota enum, mulai dari 0.

Menggunakan Enums dalam Kode Anda

Sekarang kita telah mendeklarasikan enum, mari kita lihat bagaimana kita dapat menggunakannya dalam kode kita:

class Program
{
static void Main(string[] args)
{
CharacterClass myClass = CharacterClass.Warrior;
Console.WriteLine($"Kelas karakter saya adalah: {myClass}");
}
}

Ketika Anda menjalankan kode ini, itu akan mencetak:

Kelas karakter saya adalah: Warrior

Apakah itu menakjubkan? Kita hanya menciptakan variabel jenis CharacterClass dan memberikan nilai Warrior. Itu seperti memberikan karakter Anda kartu identitas!

Nilai Enum dan Kasting

Ingat bagaimana saya menyebutkan bahwa enums diberikan nilai integer? Mari kita jelajahi itu sedikit lebih lanjut:

Console.WriteLine($"Nilai Warrior: {(int)CharacterClass.Warrior}");
Console.WriteLine($"Nilai Mage: {(int)CharacterClass.Mage}");
Console.WriteLine($"Nilai Archer: {(int)CharacterClass.Archer}");
Console.WriteLine($"Nilai Healer: {(int)CharacterClass.Healer}");

Ini akan mencetak:

Nilai Warrior: 0
Nilai Mage: 1
Nilai Archer: 2
Nilai Healer: 3

Kami menggunakan kasting disini (itu adalah apa yang dilakukan bagian (int)) untuk mengonversi nilai enum kita ke integer. Itu seperti melihat ke belakang tabir untuk melihat bagaimana C# mengatur enum kita!

Nilai Enum Khusus

Tunggu, ada lagi! Apa bila Anda ingin memberikan nilai khusus ke anggota enum Anda? Anda juga dapat melakukan itu:

enum CharacterClass
{
Warrior = 1,
Mage = 5,
Archer = 10,
Healer = 15
}

Sekarang, jika kita menjalankan kode sebelumnya untuk mencetak nilai, kita akan mendapat:

Nilai Warrior: 1
Nilai Mage: 5
Nilai Archer: 10
Nilai Healer: 15

Ini bisa berguna ketika Anda memerlukan nilai enum Anda untuk mengaitkan dengan nomor spesifik dalam permainan atau aplikasi Anda.

Enums dan Statement Switch

Enums dan statement switch seperti mentega dan jagung - mereka hanya bekerja sangat baik bersama! Ini adalah contoh:

static void DeskripsikanKelas(CharacterClass characterClass)
{
switch (characterClass)
{
case CharacterClass.Warrior:
Console.WriteLine("Anda adalah seorang warrior yang berani, kuat dalam pertempuran!");
break;
case CharacterClass.Mage:
Console.WriteLine("Anda adalah seorang mage yang bijaksana, master seni arcano!");
break;
case CharacterClass.Archer:
Console.WriteLine("Anda adalah seorang archer yang terampil, mematikan dari jarak jauh!");
break;
case CharacterClass.Healer:
Console.WriteLine("Anda adalah seorang healer yang kasih sayang, penjaga kehidupan!");
break;
default:
Console.WriteLine("Kelas yang tidak diketahui. Apakah Anda kelas rahasia?");
break;
}
}

Sekarang kita dapat menggunakan fungsi ini seperti ini:

DeskripsikanKelas(CharacterClass.Mage);

Dan itu akan mencetak:

Anda adalah seorang mage yang bijaksana, master seni arcano!

Penguraian Enums

kadang-kadang, Anda mungkin perlu mengonversi string ke nilai enum. Misalnya, jika pemain mengetik kelas yang dipilih mereka. Berikut adalah cara Anda dapat melakukan itu:

string input = "Archer";
if (Enum.TryParse(input, out CharacterClass playerClass))
{
Console.WriteLine($"Anda telah memilih menjadi {playerClass}!");
}
else
{
Console.WriteLine("Itu bukan kelas karakter yang valid!");
}

Kode ini akan mencoba secara aman mengonversi string "Archer" ke enum CharacterClass. Jika berhasil, itu akan mencetak:

Anda telah memilih menjadi Archer!

Metode Enum

Marilah kitaakhiri dengan tabel metode enum yang berguna:

Metode Deskripsi Contoh
Enum.GetNames() Mendapatkan array nama konstanta dalam enumerasi yang ditentukan string[] names = Enum.GetNames(typeof(CharacterClass));
Enum.GetValues() Mengembalikan array nilai konstanta dalam enumerasi yang ditentukan CharacterClass[] values = (CharacterClass[])Enum.GetValues(typeof(CharacterClass));
Enum.IsDefined() Mengembalikan boolean yang menunjukkan apakah konstanta dengan nilai yang ditentukan ada dalam enumerasi yang ditentukan bool isDefined = Enum.IsDefined(typeof(CharacterClass), "Warrior");
Enum.Parse() Mengonversi representasi string nama atau nilai numerik salah satu atau lebih konstanta enumerasi ke objek enumerasi yang setara CharacterClass parsedEnum = (CharacterClass)Enum.Parse(typeof(CharacterClass), "Mage");
Enum.TryParse() Mengonversi representasi string nama atau nilai numerik salah satu atau lebih konstanta enumerasi ke objek enumerasi yang setara. Nilai kembalian menunjukkan apakah konversi sukses bool success = Enum.TryParse("Healer", out CharacterClass result);

Dan itu adalah nya, murid-murid tercinta! Anda telah meningkatkan keterampilan C# Anda dengan memahami enums. Ingat, latihan membuat sempurna, jadi cobalah membuat enums Anda sendiri untuk berbagai situasi. Mungkin Anda dapat membuat enum untuk hari-hari dalam minggu, topping pizza, atau bahkan bahasa pemrograman favorit Anda!

Terus coding, terus belajar, dan terutama, bersenang-senang! Sampaijumpa lagi, semoga kode Anda bebas bug dan waktu kompilasi Anda cepat!

Credits: Image by storyset