Hoş Geldin, Ziyaretçi!

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

C Sharp enum Yapısı

Admin

TurkDevelopers
Yönetici
TDN Admin
Katılım
30 Nis 2020
Mesajlar
89
Konum
Ankara
Bu yapı program dilinde enum, enumaration veya enum sabitleri olarak adlandırılır. Değişkenlerin alabileceği değerlerin sabit (belli) olduğu durumlarda programı daha okunabilir hale getirmek için kullanılır. Programda çoğu parametre ayrı ayrı sayısal değer vermek yerine "enum" kullanmak mümkün. Özet olarak "enum" yapısı sayıları anlamlı biçimde isimlendirerek kullanabilmeye izin verir.

En genel "enum" bildirimi şöyle yapılır :
C#:
public enum Aylar
   {
       Ocak = 1,
       Subat = 2,
       Mart = 3,
       Nisan = 4,
       Mayis = 5,
       Haziran = 6,
       Temmuz = 7,
       Agustos = 8,
       Eylul = 9,
       Ekim = 10,
       Kasim = 11,
       Aralik = 12
   }
Aylar adlı Enum yapısı içerisinde aylar ve bunlara atanan sayısal değerler tanımlanabilir. Enum yapısının içindeki verilere erişmek için ‘GetNames’ metodu kullanılır. Bu metot vasıtası ile bir "enum" sabiti içindeki değerler alınıp string (karakter katarı) formatında bir diziye atanabilir.

GetNames( ) Metodunun Kullanımı :
C#:
string[] AylarDizisi= Enum.Getnames(typeof(Aylar));
Bu kod ‘Aylar’ isimli "enum"daki sabitleri yani tanımlanan ayları karakter katarı tipinde tanımlanmış ‘AylarDizisi’ adlı diziye atar.

ToString() Methodunun Kullanımı :
ToString() metoduna aşağıda belirtilen parametreler verilerek Enum sabiti içindeki istenilen değerlere ulaşılabilir.

Parametre
Görevi
G veya gDeğeri genel formatta yazar.
D veya dDeğerin sayısal karşılığını yazar.
X veya x Değerin Hexadecimal karşılığını yazar.

Konu hakkında örnek bir uygulama aşağıda verilmiştir. Uygulamada IsletimSistemi isminde bir "enum" oluşturulmuştur.
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TurkDevelopers
{
    class Program
    {
        enum IsletimSistemi
        {
        windows = 99, linux = 123,
        }
        static void Main(String[] args)
        {  
            int GirilenDeger;
            IsletimSistemi IslSis = new IsletimSistemi();
            Console.WriteLine("İşletim Sisteminizi Seçiniz");
            Console.WriteLine("1. Windows için");
            Console.WriteLine("2. Linux için");
            GirilenDeger = Convert.ToInt32(Console.ReadLine());
            switch (GirilenDeger)
            {
                case 1:
                    IslSis = IsletimSistemi.windows;

                    Console.WriteLine("İşletim Sistemi = " + IslSis.ToString("G"));
                    Console.WriteLine("İşletim sistemine Enum içinde verilen değer = " + IslSis.ToString("D"));
                    Console.WriteLine("Değerin hexadecimal karşılığı = " + IslSis.ToString("X"));
                    break;
                 case 2:
                    IslSis = IsletimSistemi.linux;
                    Console.WriteLine("İşletim Sistemi = " +       IslSis.ToString("G"));
                    Console.WriteLine("İşletim sistemine Enum içinde verilen değer = " + IslSis.ToString("D"));
                    Console.WriteLine("Değerin hexadecimal karşılığı = " + IslSis.ToString("X"));
                    break;
                 default:
                    Console.WriteLine("Bu isletim sistemi mevcut değil");
                    break;
            }
        }
     }
}