dokuz-beyaz-logo

Enumaration Kavramı Nedir?

Enum kavramını bilmeyen, uygulamayan yazılımcı çok büyük bir yanlış içindedir diye keskin bir cümleyle yazıya başlamak istiyorum.

Enum kavramı geliştirilen uygulamalarda çeşitli parametrik yönlendirmelerle, kodun içinde dallanıp budaklanan yapıyı derli toplu hale dönüştürmeye yarar.

Kodu yazarken üşengeçlikle, gelen değerin tipine veya içeriğine örn;

değer ==1 gelirse şöyle yap, 2 gelirse böyle yap, 3 gelirse böyle yap gibi bir kodlama ve tanımlama biçimleri kullanıyorsanız,

hatta deger==’islemtamam’ else deger==’islemtamamdegil’ gibi koşullu ifadelerle kod yönlendirmesi yapıyorsanız, projeyi bir kaç yıl veya ay sonra tekrar açtığınızda kendi kendinize hakaret etme ihtimaliniz çok yüksektir.

Çok can sıkıcı bir durumdur, lütfen yapmayın 🙂

Şimdi enum kavramını anlamak için bir örnek düşünelim.

belgetip adında bir enumumuz olsun.

				
					enum BelgeTip { Fatura, Irsaliye, Siparis, DepoHareket, Tahsilat};
				
			

Belge tipler detaylandırılabilir.

				
					static void Main(string[] args)
{
BelgeTip secilenbelge = BelgeTip.Fatura;
if (secilenbelge== BelgeTip.Fatura)
{
Console.WriteLine("Fatura Tipini Seçtiniz.");
}
else If(secilenbelge== BelgeTip.Irsaliye)
{
Console.WriteLine("Irsaliye Tipini Seçmediniz.");
}
else If(secilenbelge== BelgeTip.Siparis)
{
Console.WriteLine("Sipariş Tipini Seçmediniz.");
}
else If(secilenbelge== BelgeTip.DepoHareket)
{
Console.WriteLine("Depo Hareket Tipini Seçmediniz.");
}
else If(secilenbelge== BelgeTip.Tahsilat)
{
Console.WriteLine("Tahsilat Tipini Seçmediniz.");
}
}
				
			

Şimdi bu ne işe yarıyor ?

Kod içerisinde okunabilirlik artıyor,

Ayrıca uygulama içinde yapılan business işlemlerinin her birine ekstra yeni business işlem geldiğinde kod’a ekleme kısmı daha sonrasında basitleşiyor,
Örneğin Tahsilatlardan sonra yeni bir işlem tipi gelebilir, Mesela mantıksal olarak benzer hiyerarşide olan (Talep veya Teklif belgesi tipi)

Enum mantığı hiyerarşik olarak bir alt kırılımda da tanımlanabilir.
Tabii kodun içinde o hiyerarşik yapıyı eklemek çok mantıklı mı tartışılır ama yukarıda kurduğumuz mantığa bağlı

FaturaTip enumu oluşturup onun altında

				
					enum FaturaTip{ Alis, Satis, SatistanIade, AlistanIade};
				
			

Gibi bir yapı kurulması gerekir.

İşi biraz daha abartırsak.

				
					enum IadeTip{SaglamIade,BozukIade}
				
			

Tip yapısı da kurgulanması gerekir.
Bütün bu yapı veri tabanı yapısının içinde de bulunabilir.
Hatta Projenin hemen hemen her yerinde bu enum mantığı kullanılacağından, Sisteme entegrasyon veya rapor yapılırken de bu enum detaylarından yararlanılır.
Bir web projesi için yaptığım enumaration yapısını sizlerle paylaşmak istiyorum.
Enum Başlık Tiplerim

 

Başlığa bağlı hiyerarşideki detay tiplerim.

Ekran yetmediği için tamamını alamadım.

Sistem içinde kullanılan combo boxlar(Çoktan seçmeli kutular) da bu yapı kullanılabilecektir.

Örneğin bir uygulama yazıyorsunuz ve yazdığınız uygulamada anlık olarak 2 seçeneğe ihtiyacınız var, Siz o combo box’ın data ve value kısmını manuel olarak örneğin cinsiyet olsun , kadın ve erkek olarak doldurdunuz, valueIndex’i 0 ve 1 olarak çekip o an kullanmaya çalıştığınızda, daha sonrasında bir rapor veya bir veri transferi işleminde o alanı yine manuel olarak 0 ve 1 olarak çekmek zorunda kalacaksınız, ve o rapor’u okuyan başka biri orada ne yapmak istediğinizi anlamakta zorlanacatır.

Her mühendislik, veya meslekte olduğu gibi belli başlı etik kurallar ve mesleki terbiye olduğu için, yapılan işi ciddiye alarak yapmak, ve hakkını vermek (üşengeçlik ve düzensizlik) ‘den uzak durmak adına yapılması gereken her türlü özveriyi göstermeniz gerekmektedir.

Ayrıca bu kavra bilimsel açıdan mühendislik yapısına uygun bir biçim ve kurallar bütünüdür.

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.

Enum mantığı yaptığınız işi dökümante etmek konusunda da sizlere daha sonra oldukça yardımcı olacaktır.

Sonuç olarak ; enum demek = kod okunabilirliği demektir.

Facebook
Pinterest
Twitter
LinkedIn

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir