Enum veya numaralandırma Özel sözcük veya ifadeleri belli bir sayısal değer alan toplu sabitler tanımlamak için kullanılan bir yapıdır.
Tanımlama şekli;
enum anahtar sözcüğü ile tanımlanır.
enum isim {SOZCUK1,SOZCUK2 };
enum isim : tur{ SOZCUK1,SOZCUK2}
Burada isim numaralandırmaya verilen tip ismini, parantez içindeki “,” ayrılan ifadelerde tanımlayıcıların listesini belirler .
Hemen bir örnek ile açıklayalım not sistemindeki bilgileri numaralandırırsak
0 başarısız
1 geçmez
2 geçer
3 orta
4 iyi
5 pekiyi şeklindedir şimdi tanımda ne demiştik sözcük veya ifadeleri sayısal değer alan sabitler olarak tanımlamak için kullanılır şimdi bizim burada yapacağımız da o notları tanımlayacağız
enum not : byte { basarisiz, gecmez, gecer, orta, iyi, pekiyi }
bu tanımlamaya göre 0,1,2,3,4,5 sırayla değerlerini alırlar uygulama kodlarımız
enum not : byte { basarisiz, gecmez, gecer, orta, iyi, pekiyi } static void Main(string[] args) { Console.Write("Lütfen notunuzu giriniz: "); not a=(not)Convert.ToByte(Console.ReadLine()); Console.WriteLine(a); Console.ReadKey(); }
Bizden bir not bilgisi istenecek 3 girdiğimiz zaman çıktı olarak orta yazacak çünkü numaralandırmadaki sıraya göre 3’ün karşılığında orta vardı.
Enum sıra numaralarını değiştirme
Tanımlama içinde farklı sayı değerleri vermek için sabitler “=“ ile farklı değerlere atanabilir.
enum not:byte{basarisiz=6,basarili=10}
Bu örnekte basarisiz 6’yı, basarili 10’u temsil eder.
enum not:byte{basarisiz=6,basarili}
Bu örnekte basarisiz 6’yı, basarili 7’yi temsil eder .
enum not:byte{basarisiz=-21,basarili}
Bu örnekte basarisiz -21’i basarili -20’yi temsil eder .
enum not:byte{basarisiz,gecmez=5,gecer,orta,iyi=2,pekiyi}
Bu örnekte ise şu temsiller söz konusudur
Sözcük Temsil ettiği sayı
basarisiz 0
gecmez 5
gecer 6
orta 7
iyi 2
enum sabitlerine enumAdı.Sabit şeklinde ulaşılır.
enum sabitleri de birer veri tipi oldukları için fonksiyona parametre olarak gönderilebilir.
System.Enum sınıfından türetildikleri için bazı metotlar ile sabit sembollerin isimleri alınabilir.
Hemen örnek yapalım
enum Gunler : byte { PAZARTESI, SALI, CARSAMBA, PERSEMBE, CUMA, CUMARTESI, PAZAR } static void Main(string[] args) { string[] a=Gunler .GetNames(typeof(Gunler)); Console.WriteLine(a[0]); //veya Console.WriteLine(Gunler .GetNames(typeof(Gunler))[3]); Console.ReadKey(); }
Bu örnek ekrana alt alta PAZARTESI ve PERSEMBE yazar.