Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

Visual Basic Enumlar ve Enum Örnekleri

Visual Basic meraklısı yazılımcılara yeniden selamlar :)

VB.Net ile nesne yönelimli programlama öğrendiğimiz makale dizimizde bugün bam başka bir konu olan Enum konusunu öğreneceğiz.

Enumları kabaca tarif edersek sabit değerler dizisidir diyebilir ancak klasik dizilerden,ArrayList'lerden ve jenerik listlerden farklı olarak sanki static class ve üyeleri gibi davranmaktadırlar.

Bu yapının açık anlamı ise Enumberable (sayılabilir) şeklindedir ve aynı isimli sınıfın alt üyesidir, ayrıca Enumberable sınıfı IEnumerable interface (arayüz) barındırmaktadır.

Çok fazla teorik detaya girmeden önce Enum'ların yapısını inceleyelim:

vbnet-enum

Enum'lara en güzel örnek haftanın günleri,aylar gibi sabit kalıplar verebiliriz:

enum-ornek

Enumlar sabit dizilermiş gibi davranarak uygun her yerden erişilebilen açık kodlardır ve her üye tıpkı dizinin elemanı olduğu gibi kendisine ait sayısal bir değer alabilirler.

Örneğin; günler haftanın tekrar eden belli günleridir dersek her gün adının karşısına değer verebiliriz:

enum-deger-atama

Enum üyelerinin değer almaları zorunlu değildir,isteğe bağlıdır.Ancak bir enum üyesi yalnızca int tipinde sayısal bir değer alabilir.

Yazdığımız bir enum içindeki üyelere şu şekilde ulaşabiliriz:

vbnet-enum-erisim

Bir enum üyesinin karşılığındaki değeri ise şu kod satırıyla elde ederiz:

enum-degeri-yakalama

Enumlar sıralı dizi gibi davrandığı, daha doğrusu gerçek bir dizi gibi davrandıkları için döngülerle içeriğindeki üyelere ve varsa değerlerine tek tek ulaşmamızı sağlarlar.Basit bir örnekle haftanın günlerini Windows Console uygulamasında görelim:

enum-foreach

Enum öğelerine ve değerlerine for each döngüsüyle erişiyoruz:

enum-degeleri

Enum'lar yapı itibariyle sayısal bir değer olan integer döndürmektedirler ancak her enum üyesi "Enum" sınıfını temsil ettikleri için metotlara parametre olarak verilebilirler.

Peki neden böyle birşey dedik?

Örneğin; haftanın günleriyle ilgili bir metot yazalım ve program bize iş gününde mi yoksa tatil gününde mi olduğumuzu belirtsin.Metodumuz parametre olarak bizden haftanın günleri enumunu istesin ve parametre olarak hangi gün üyesini verirsek ona göre hareket etsin:

enum-parametre

Select case koşul ifadesiyle parametre olarak verilen enum değerini metot içerisinde karşılaştırıyoruz:

enum-metot-kullanim

Elbette enum karşılaştırmaları select case ile şart olmamaktadır, isteseydik if-else deyimleriyle de karşılaştırma yapabilirdik.

Projemizi çalıştıralım:

parametre-olarak-enum

Görüldüğü gibi parametre olarak verilen enuma ait üyeler fonksiyon içerisinde karşılaştırma tekniğiyle kullanılabilmektedir.
Enumların üyeleri sayısal bir değer sahiplerse aynı örneği gün sayılarına göre uyarlayalım:

enum-degeri-dongu

enum-select-case

Böylece enumların hem ismen hem de aldığı değere göre fonksiyonlarda kullanıldığını öğrenmiş olduk.Burada dikkat
etmemiz gereken konu eğer günler örneğindeki gibi her günün karşısına sayısal bir değer tanımlamadan son örneğimizdeki gibi sayısal değerine göre karşılaştırma yapmış olsaydık Visual Studio exception fırlatacaktı çünkü enumlar karşılık değerleri almak zorunda değillerdir.

VB.Net için Enum konusuyla ilgili olarak bahsedeceklerim şimdilik bunlarla sınırlı kalmaktadır,ilerleyen makalelerimizde görüşmek üzere hoşçakalın esen kalın. :)


Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu