Merhaba, C# Enum – Enum Nedir Nasıl Kullanılır? yazım ile C# eğitim setime devam ediyorum. Bu dersimizde C#’ta Enum nedir ve nasıl kullanılır sorularına cevap vermeye çalışacağım.
C# Enum – Enum Nedir Nasıl Kullanılır?
Enum, geliştirdiğimiz uygulamalarda sabit değerler ile çalışmamız gerektiğinde kullanabileceğimiz bir yapıdır. Programı daha okunabilir ve gelecekte tekrar döndüğümüzde anlamamızı kolaylaştıracak bir yapıdır.
C# Enum Nedir?
Enum yani, Enumerations (Numaralandırmalar) string ifadelerle sayısal karşılaştırma ya da farklı işlemlerin gerektiği noktalarda yazılımcılar için daha da okunabilirlik sağlayan ve gelecekte anlaşılmasını zorlaştıran kod karmaşasını azaltmayı sağlayan yardımcı bir yapıdır.
Kısacası, belirlediğiniz sayıları belirlediğiniz string ifadelerle kullanabilmemizi sağlar. Örneğin pazartesi için 1, salı için 2 gibi…
C# Enum Nasıl Kullanılır?
Enum kullanımı formatı aşağıdaki gibidir.
enum enum_ismi { deger1,deger2,deger3};
Önce Enum anahtar kelimesi kullanılır. Enum’a bir isim verilir ve süslü parantezler arasında değerler yazılır. Bu değerlerin Index numaraları derleyici tarafından otomatik olarak ayarlanır.
Şimdi gelin 3 tane örnek Enum yazalım.
enum Renkler { Kirmizi, Yesil, Mavi }; enum Departmanlar { Yazilim, Bilgi_Işlem, Muhasebe }; enum Gunler { Pazartesi, Sali, Carsamba, Persembe, Cuma, Cumartesi, Pazar };
Enum sabit değerler söz konusu ile kullanılması fayda sağlar. Yukarıdaki örneklerden en mantıklısı Gunler Enum‘udur. Çünkü Günler her zaman aynıdır ve hiç değişmezler. Diğer bir deyişle her zaman sabittir. Bu sebeple, günleri kullanmamız gerektiğinde Enum ile kullanabiliriz.
Enum sayısal değerler tutan bir yapıdır. Enum içindeki değerlere veri ataması da yapabiliriz ancak bu sayısal bir değer olmak zorundadır. Bu sayısal değerler arasında, byte, sbyte, short, ushort, int, uint, long ve ulong değişken tipleri yer almaktadır. Hazırladığınız Enum’a yukarıdaki değişken türlerinden birisinden miras aldırabilirsiniz. Böylece Enum içinde olan değerlerin sayısal değişken tipini belirleyebiliriz.
enum Renkler : short { Kirmizi, Yesil, Mavi };
Short türünden miras alan Renkler enum’u, içerdiği değerlerin hepsi short türünde veri tutabilir hale gelmiştir. Aşağıda da Enum değerlerine veri atamasını görebilirsiniz.
enum Renkler { Kirmizi = "Kırmızı", Yesil = "Yeşil", Mavi }; // hatalı enum Gunler { Pazartesi = 1, Sali = 2, Carsamba = 3, Persembe = 4, Cuma = 5, Cumartesi = 6, Pazar = 7 }; // doğru
Yukarıda gördüğünüz Renkler enum’unda yaptığımız string veri ataması hatalıdır ancak Gunler enum’unda yaptığımız sayı ataması doğrudur yani hatalı değildir.
Şimdi basit bir kullanım şeklini görelim…
Renkler Renk = Renkler.Kirmizi; Departmanlar Departman = Departmanlar.Muhasebe; Gunler Gun = Gunler.Cuma; MessageBox.Show("Renk:" + Renk.ToString() + " || Departman: " + Departman.ToString() + " || Gün: " + Gun.ToString());
Gördüğünüz gibi yukarıdaki kullanım örneği ile değerlerin isimlerine ulaşabiliyoruz. C# Enum Nedir? ve C# Enum Nasıl Kullanılır? sorularını cevapladığımıza göre bir kaç örnek yapmaya çalışalım.
C# Enum Örnekleri
Örnek 1:
Öğrencinin notuna göre geçme durumunu gösteren bir örnek yapalım.
enum GecmeDurumu { Basarisiz = 0, Gecer = 45, Orta = 60, Iyi = 70, Pekiyi = 80 } ... ... ... int ogrenci_not = 70; GecmeDurumu gd = (GecmeDurumu)ogrenci_not; MessageBox.Show(gd.ToString());
Bu örneği çalıştırdığımızda alacağımız çıktı “Iyi” olacaktır. Burada dışarıdan alınan not bilgisini GeçmeDurumu Enum tipine cast ederek alınan not bilgisinin karşılık geldiği değeri alıyoruz.
Örnek 2:
enum Gunler { Pazartesi, Sali, Carsamba, Persembe, Cuma, Cumartesi, Pazar}; ... ... ... string[] a = Gunler.GetNames(typeof(Gunler)); MessageBox.Show(a[0].ToString()); MessageBox.Show(Gunler.GetNames(typeof(Gunler))[3]);
Bu örneğimizde Enum içerisindeki değerleri bir diziye atarak, index numarası üzerinden günü bulabiliyoruz.
- MessageBox’un çıktısı: Pazartesi
- MessageBox’un çıktısı: Perşembe
C# Enum – Enum Nedir Nasıl Kullanılır? yazımda bu kadardı arkadaşlar.
Bana destek olmak isterseniz, iletişim sayfamda verdiğim sosyal medya hesaplarımı takip edebilirsiniz.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme bu bağlantıdan ulaşabilirsiniz… B
Bu yazı, sitemdeki 451. yazıdır… Sağlıcakla ve takipte kalın. ;)