Merhabalar, bir önceki yazımda sizlere Enum nesnesi kullanımı nedir anlatmıştım. Bu yazımda ise, Enum nesnesinin özelliklerini inceliyor olacağız.Enum nesnesini kullandığımız sayısal değerleri daha akılda kalıcı olabilmesi için isimlendirmek gibi düşüne bilirsiniz, default sayısal değeri int olmasına karşın istersek bunu değiştirebiliryoruz.
Aşşağıdaki kullanım şeklinde index değeri ataması yapılmadığından system otomatik olarak 0 değerinden başlatacaktır ve veri tipini Int32 olarak belirleyecektir.
public enum Sehirler // : int (default index veri tipi) { // isim değeri // default index değeri Adana, // 0 Adıyaman, // 1 Afyonkarahisar, // 2 Ağrı, // 3 Aksaray, // 4 Amasya, // 5 Ankara, // 6 Antalya, // 7 Ardahan, // 8 Artvin, // 9 Aydın // 10 }
Eğer enum nesnesinin sayısal veri tipini değişirmek iseterseniz aşşağıdaki gibi düzenleyebilirsiniz.
public enum Sehirler : byte { }
Bit bayrakları olarak numaralandırma
Bir enum değerine birden fazla değer yüklemek isterseniz [Flags] attribute değerini kullanarak kullanabilirsiniz örnek olarak aşşağıdaki örneği inceleyebilirsiniz.
[Flags] public enum Gunler : short { None = 0, Pazartesi = 1, Sali = 2, Carsamba = 4, Persembe = 8, Cuma = 16, Cumartesi = 32, Pazar = 64, HaftaSonu = Cumartesi | Pazar }
Enum değerlerine benzersiz olacak şekilde index numaraları eklemeniz gerekecektir. Diğer enumları sayısal anlamda topladığınızda herhangi bir enum değerine karşılık gelmemelidir.
Enum Kontrolü
Enum sınıfının kullanırken verdiğiniz değerin karşılığında bir enum olup olmadığını control etmemiz gereken durumlarla karşılaşmaktayız, Gelen sayısal değerin bir enum karşılığı yok ise işleme devam etmemiz gerekir ve bir uyarı ile işlemi durdurmamız gerekebilir. Bu gibi durumlarda IsDefined metodunu kullanırız, örnek olarak aşşağıdaki örneği inceleyiniz.
public enum Sehirler { Adana = 1, Adıyaman = 2, Afyonkarahisar = , Ağrı = 4, Aksaray = 68, Amasya = 5, Ankara = 6, Antalya = 7, Ardahan = 75, Artvin = 8, Aydın = } static void Main(string[] args) { int plaka = 34; if (Enum.IsDefined(typeof(Sehirler), plaka)) { Console.WriteLine("Sehirler içerisinde gönderdiğiniz değere karşılık bir şehir vardır"); } else { Console.WriteLine("Sehirler içerisinde gönderdiğiniz değere karşılık bir şehir yoktur"); } }
Bir sonraki yazımda görüşmek üzere
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar:
www.mshowto.org
TAGs: Enum (Enumeration,Enum (Enumeration) Nedir?,Enum (Enumeration) kullanımı