"Enter"a basıp içeriğe geçin

C# Enum Nedir ve Nasıl Kullanılır?

Merhaba arkadaşlar, bu yazıda C# dilinde enum nedir ve nasıl kullanılır konusu üzerinde duracağım.

Enum Nedir ve Nasıl Kulanılır?

Enum (sayısal değerlerin isimlendirilmesi), programlama yaparken sıkça karşılaştığımız bir yapıdır. Örneğin, bir mevsim değişkeni tanımlamak istediğimizde, bunu int tipinde yapabiliriz:

int mevsim = 1; // 1 kış, 2 ilkbahar, 3 yaz, 4 sonbahar olsun

Ancak bu şekilde yapmak hem kodun okunabilirliğini azaltır hem de hata yapma ihtimalimizi artırır. Çünkü mevsim değişkenine 1 ile 4 arasında olmayan bir değer atayabiliriz veya 1’in kış olduğunu unutabiliriz. Bu gibi durumlarda enum kullanmak daha mantıklıdır. Enum, bize sayısal değerleri isimlendirmek için bir yol sunar. Böylece kodumuz daha anlaşılır ve güvenli olur. Enum tanımlamak için şöyle yaparız:

enum Mevsim {Kis, Ilkbahar, Yaz, Sonbahar}

Bu şekilde Mevsim adında bir enum tipi oluşturmuş oluruz. Bu enum tipinden bir değişken tanımlayabilir ve değer atayabiliriz:

Mevsim mevsim = Mevsim.Kis;

Burada mevsim değişkenine 1 yerine Mevsim.Kis değerini atadık. Böylece kodumuz daha okunaklı oldu. Enum değerlerinin varsayılan olarak int tipinde olduğunu ve sıfırdan başlayarak arttığını belirtelim. Yani Mevsim.Kis = 0, Mevsim.Ilkbahar = 1, Mevsim.Yaz = 2 ve Mevsim.Sonbahar = 3 olur. Eğer enum değerlerine farklı sayısal değerler atamak isterseniz, şöyle yapabilirsiniz:

enum Mevsim {Kis = 10, Ilkbahar = 20, Yaz = 30, Sonbahar = 40}

Bu şekilde enum değerlerini istediğiniz gibi belirleyebilirsiniz. Enum değerlerini kullanırken dikkat etmeniz gereken bir nokta, enum tipinin adını yazmanız gerektiğidir. Yani şöyle yapamazsınız:

Mevsim mevsim = Kis;

Bu kod hata verecektir. Doğru olan şudur:

Mevsim mevsim = Mevsim.Kis;

Enum değerlerini ekrana yazdırmak için ise ToString() metodunu kullanabilirsiniz:

Console.WriteLine(mevsim.ToString()); // Kis

Enum değerlerini sayısal olarak görmek için ise cast işlemi yapabilirsiniz:

Console.WriteLine((int)mevsim); // 10

Enum değerlerini karşılaştırmak için ise == operatörünü kullanabilirsiniz:

if (mevsim == Mevsim.Kis) {
    Console.WriteLine("Soğuk!");
}

Enum kullanımının faydalarını gördükten sonra, enum konusunu daha iyi anlamak için bir örnek yapalım. Diyelim ki bir banka hesabı sınıfı tanımlamak istiyoruz. Bu sınıfın hesap türü adında bir özelliği olsun. Hesap türü normal veya öğrenci olabilir. Bu durumda hesap türünü enum ile tanımlayabiliriz:

enum HesapTuru {Normal, Ogrenci}
class BankaHesabi {
    public string AdSoyad { get; set; }
    public double Bakiye { get; set; }
    public HesapTuru HesapTuru { get; set; }
    public BankaHesabi(string adSoyad, double bakiye, HesapTuru hesapTuru) {
        AdSoyad = adSoyad;
        Bakiye = bakiye;
        HesapTuru = hesapTuru;
    }
    public void BilgileriYazdir() {
        Console.WriteLine("Ad Soyad: " + AdSoyad);
        Console.WriteLine("Bakiye: " + Bakiye);
        Console.WriteLine("Hesap Türü: " + HesapTuru.ToString());
    }
}

Bu şekilde BankaHesabi sınıfını tanımladık. Şimdi bu sınıftan birkaç nesne oluşturalım ve bilgilerini yazdıralım:

BankaHesabi hesap1 = new BankaHesabi("Ali Veli", 1000, HesapTuru.Normal);
BankaHesabi hesap2 = new BankaHesabi("Ayşe Fatma", 500, HesapTuru.Ogrenci);
hesap1.BilgileriYazdir();
hesap2.BilgileriYazdir();

Bu kodun çıktısı şöyle olacaktır:

Ad Soyad: Ali Veli
Bakiye: 1000
Hesap Türü: Normal
Ad Soyad: Ayşe Fatma
Bakiye: 500
Hesap Türü: Ogrenci

Gördüğünüz gibi enum kullanarak hesap türünü kolayca tanımlayabildik ve kodumuz daha anlaşılır oldu. Umarım faydalı olmuştur. Soru, görüş veya önerileriniz varsa yorum kısmından yazabilirsiniz. Bir sonraki yazımda görüşmek üzere, hoşçakalın.

C# ile ilgili diğer yazılarım için: C# – Bizneyapiyoruzki

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.