Enum Kullanımı

       Geliştirdiğimiz uygulamalarda çeşitli parametrik yönlendirmelere ihtiyaç duyabiliriz. Özellikle de yazılıma yeni başlayan bir çaylak yazılımcıysanız mutlaka bunun gibi bir yaklaşımda bulunmuşsunuzdur. “ 1 gelirse şunu şunu yap, 2 gelirse bunu yap”. Son çıktıya baktığımızda belki istenilen sonucu almışsınızdır fakat büyük bir proje olduğunda veya bir süre sonra tekrar aynı koda baktığınızda 1’in neyi, 2’nin neyi ifade ettiğini tekrardan hatırlamanız gerekir, unuttuğunuzda ise tekrardan kodu çözmeniz için zaman harcamanız gerekmektedir.

       Numaralandırmalar (enumerations) kod içerisinde sayısal karşılaştırma veya işlem gerektiren yerlerde yazılımcı için daha okunabilirlik sunan, kod karmaşasını azaltan yardımcı bir yapıdır.

Enum yapısı

       Enum’ın en temel yapısı aşağıdaki gibidir.

enum enum_ismi { deger1,deger2,deger3};  

Enum kullanımı

       Şimdi ufak bir örnek ile kullanalım. Seçilen güne göre hafta içerisinde mi, hafta sonunda mı yer aldığını belirten bir konsol uygulaması yapalım.

       enum Gun { Pazartesi, Salı, Carsamba, Persembe, Cuma, Cumartesi, Pazar };

        static void Main(string[] args)
        {
            Gun secilenGun = Gun.Carsamba;

            if (secilenGun == Gun.Cumartesi || secilenGun == Gun.Pazar)
            {
                Console.WriteLine("Hafta sonu seçtiniz.");
            }
            else
            {
                Console.WriteLine("Hafta içi seçtiniz.");
            }
        }

       Yazdığımız uygulamada seçilen günü “Gun” tipinde aldık ve enum olarak karşılaştırmasını yaptık. Oluşturduğumuz enumlara referans değeri verebilir ve referans değeri ile de işlemler yapabiliriz. Bunun için aşağıdaki gibi ufak eklemeler ile aynı uygulamayı yazabiliriz.

       enum Gun { Pazartesi = 1, Salı = 2, Carsamba = 3, Persembe = 4, Cuma = 5, Cumartesi = 6, Pazar = 7};

        static void Main(string[] args)
        {
            int secilenGun = (int)Gun.Carsamba;

            if (secilenGun == (int)Gun.Cumartesi || secilenGun == (int)Gun.Pazar)
            {
                Console.WriteLine("Hafta sonu seçtiniz.");
            }
            else
            {
                Console.WriteLine("Hafta içi seçtiniz.");
            }
        }

Yazdığımız iki uygulama da aynı ekran görüntüsünü verecektir.

Farklı türlerde enum tanımlama

       Enum içerisine farklı türlerde de atama yapabiliriz.

enum Sonuç : byte { Kaldi,Gecti };

Enum kullanırken bilinmesi gerekenler

  • Enum içerisinde değer vermezsek, değerler 0’dan başlar ve birer birer artar.
  • Enum’ların varsayılan değer “int”dir.
  • Enumları; byte,sbyte, short,ushort, int, uint,long, ulong türlerin oluşturabiliriz.
  • Enum içerisine verdiğimiz değerlerde, değişken isimlendirmede dikkat edilen kurallar geçerlidir. Örneğin sayı ile başlayan veya içerisinde boşluk bulunan isimlendirmeler veremeyiz.

 

 

Add comment