Header Ads

C# Enum


Program içerisinde kullanılan sabitlerin anlamlandırılması amacı ile bu sabitlere isimler
vererek bir grup altında toplanabilir. Bu şekilde oluşturulan gruplara enum (enumeration -numarlandırma) adı verilir.
Örnek kullanım 8 :

IsDefined Medotu : enum içinde bir değerin tanımlanıp tanımlanmadığını bulmak amacı ile
kullanılır.
Örnek kullanım 9 :


Enum içerisindeki elemanlara erişim

Örnek kullanım 10 :

Enum elemanlarını ekrana formatlı bir şekilde yazmak
G veya g : enum değerini genel biçimde görüntüler.
D veya d : enum değerinin sayısal karşılığını görüntüler.
F veya f : enum değerinin string karşılığını görüntüler. Birden çok eleman mantıksal operator
kullanılarak gruplandırıldı ise gruplandırılmış elemanlrın arasına virgül konularak görüntülenir.
X veya x (HexaDecimal) : enum değerinin hexadecimal (onaltılık) karşılığını görüntüler.

Örnek kullanım 11 :
Mantıksal operatörler kullanılarak enum içerisindeki değerler üzerinde işlemler yapılabilir.
Örneğin; uzmanlık adında bir enum tanımlayarak, içerisine masaüstü programlama, web
programlama, script programlama dillerini eleman olarak ekleyerek, bu diller üzerinde | (or -
veya) mantıksal operatörü ile gruplandırma yapalım.

Örnek kullanım 12 :
Çıktı : 

Örneğimizde,
Uzmanlik.VBNet | Uzmanlik.CSharp;

Cümlesi ile VBNet ve Csharp elemanlarını gruplandırarak masaustuProgramlama değişkenine
aktardık. Burada görüldüğü gibi ToString metodunu F (Flag) biçimlendirmesi ile birlikte
kullandığımızda masaustuProgramlama değişkeni içerisine | (or) mantıksal operatörü
kullanarak eklenmiş olan VBNet ve CSharp değişkenleri, aralarında virgül konularak listelenir.
Diğer biçimlendirmelerde ise, 9 rakamının görüntülendiğini görüyoruz. Bu değer VBNet
elamanının değeri olan 1 ve CSharp elemanının değeri olan 8 rakamlarının toplanması ile elde
edilir.
[Flags()] niteliğini kullanrak F parametresini kullanarak elde ettiğimiz karşılıkları, diğer
parametreler içinde elde edebiliriz. Yukarıdaki örneğimizde ToString yada ToString(“G”) ile de
VBNet, CSharp şeklinde masaustuProgramlamadeğişkeni içerisindeki elemanları elde etmek
istersek, enum tanımlamamızı...

 [Flags()]
 enum Uzmanlik{
    VBNet = 1,
    CSharp = 8,
    PHP = 3,
    Python = 5,
    Perl = 12
 }
...şeklinde düzenlememiz gerekiyor. Programı bu düzenlemeyi yaptıktan sonra
çalıştırdığımızda aşağıdaki çıktıyı elde ederiz.
- System.Enum Sınıfı : enum içerisindeki elemanlar üzerinde işlem yapmak için
System.Enum sınıfından faydalanılabilir. Bu sınıfa ait metotlardan enum içerisindeki
elemana erişim için kullanılan başlıcalarını inceleyelim.
    -GetName Metodu : Enum içerisinde mevcut olan bir elemana, sayısal değerini kullanarak erişmek için GetName metodunu kullanabiliriz. Örneğin; oluşturmuş olduğumuz Uzmanlik
adlı enumiçerisindeki CSharp adlı elemana erişelim.

public static void Main(string[] args)
 {
 Console.WriteLine(Enum.GetName(typeof(Uzmanlik), 8));
 Console.ReadKey(true);
 }

 [Flags()]
 enumUzmanlik{
    VBNet = 1,
    CSharp = 8,
    PHP = 3,
    Python = 5,
    Perl = 12
 }
örneğimizde Uzmanlik adlı enum içerisindeki elemanlara değer ataması yapmamızdan dolayı CSharp elemanının değeri olan 8 değerini girerek Enum.GetName(typeof(Uzmanlik), 8)
Şeklinde CSharp elemanını görüntüledik. Eğer elemanlara değer atamamış olsaydık CSharp elemanına erişmek için

[Flags()]
 enumUzmanlik{
    VBNet,
    CSharp ,
    PHP,
    Python ,
    Perl
 }
Kodumuda geçen typeof metodu, Uzmanlik adlı değişkenin enum türünden olduğunu belirtmek amacı ile kullanılmıştır.
GetName metodunu
Enum.GetName(typeof(Uzmanlik), 1)
şeklinde erişmek istediğimiz elemanın sıra numarasını belirterek değeri görüntüleyebiliriz.
    -GetNames Metodu :
enum içerisindeki elemanları string formatta elde ederek bir dizi içerisine saklamak için kullanılır. Örnek olarak Uzmanlik adlı enum içerisinde bulunan elemanları ekrana yazmak için;
 foreach (var uzmanlik inEnum.GetNames(typeof(Uzmanlik))) {
 Console.WriteLine(uzmanlik);
 }
şeklinde GetNames metodundan faydalanarak aktarım yapabiliriz.
Çıktı :

    -GetValues Metodu : Enum içerisindeki sabitlerin sayısal değerlerini int formatta elde ederek bir dizi içerisinde saklamak amacıyla kullanılır. Örnek olarak Uzmanlik adlı enum içerisindeki elemanların sayısal değerlerini ekrana yazdıralım.

public static void Main(string[] args)
 {
 foreach (intuzmanlik inEnum.GetValues(typeof(Uzmanlik))) {
 Console.WriteLine(uzmanlik);
 }
 Console.ReadKey(true);
 }

 [Flags()]
    enumUzmanlik{
    VBNet = 1,
    CSharp = 8,
    PHP = 3,
    Python = 5,
    Perl = 12
 }

Çıktı :

    -Parse Metodu : Enum içerisindeki ismi yada aldığı değere erişmek için Parse metodu kullanılabilir. Örnek olarak; Uzmanlik adlı enum içerisindeki CSharpelemanlarının değerini
Parse metodu ile görüntüleyelim.

public static void Main(string[] args)
 {
   Uzmanlikuzmanlik =
   (Uzmanlik) Enum.Parse(typeof(Uzmanlik),"CSharp",true);
    Console.WriteLine("C# uzmanlık alanının değeri : {0}",
    uzmanlik.ToString("D"));
   Console.ReadKey(true);
}
 [Flags()]
 enumUzmanlik{
    VBNet = 1,
    CSharp = 8,
    PHP = 3,
    Python = 5,
    Perl = 12
 }
Çıktı olarak C# uzmanlık alanının değeri : 8 şeklinde bir sonuç üretecektir

Hiç yorum yok

Blogger tarafından desteklenmektedir.