logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
mehmetzekikir  
#1 Gönderildi : 21 Şubat 2015 Cumartesi 09:42:05(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Bu makele için Bilgehan YILDIZ' a teşekkürler

Enumlar kod okunabilirliğini arttıran veya bazı keywordlerimizi belli değerlerle birlikte temsil etmemize sağlayan bir tiptir.

Hemen hemen her yerde görebileceğimiz en temel enum yapısına örnek olarak genelde günler kullanılır.

Kod:

public enum Gunler
        {
            Pazartesi,
            Sali,
            Carsamba,
            Persembe,
            Cuma,
            Cumartesi,
            Pazar

   }



Tabi Enumlarımızı temsil eden değerlerde atabiliriz.Bu makalede içine enum tipinde bir değişken alan fonksiyonun kullanımını göreceğimiz için ben aşağıdaki gibi bu temsil değerlerini 2 ve 2 nin katları şeklinde yaptım nedeni ise bit işlem yapabilmek için

Kod:

public enum Gunler
        {
            Pazartesi=1,
            Sali=2,
            Carsamba=4,
            Persembe=8,
            Cuma=16,
            Cumartesi=32,
            Pazar=64

        }	




Mesela gelen gunler Salı günü ise Sınavınız var diye yazacak bir örnek fonksiyon tanımlayalım.Aşağıdaki gibi fonksiyonumuzu önce direkt günün değerini yazdırdığımızda ekrana 10 değeri gelecektir.Ancak biz fonksiyonun içine Salı ve Perşembe gününü beraber gönderdik.Aşağıdaki gibi direkt bir kullanım yaparsak sonuç bize Belirtilen günlerde sınavınız yok dönecektir

Kod:


    SinavGunlerGoster(Gunler.Sali | Gunler.Persembe);

public void SinavGunlerGoster(Gunler gun) 
        { 

//MessageBox.Show(gun.ToString());Bunun çıktısı 10 olacaktır

if (gun == Gunler.Sali)
            {
                MessageBox.Show("Belirtilen günlerden birinde sınavınız var");
            }
            else 
            {
                MessageBox.Show("Belirtilen Günlerde Sınavınız Yok");
            }

}



Programın doğru çalışması için & le bit işlemi yapmamız gerekmektedir

if ((gun & Gunler.Sali) == Gunler.Sali)
{

Değerleri 2 ve katları vererek binary işlem yaparak doğru sonucu bulmuş olduk.

Mantık aşağıdaki gibidir

Gunler.Sali | Gunler.Persembe-->Sali-2 Perşembe 8 binary formatta

010
100 veya işlemine soktuğumuzda 110 yapar ki bunun toplamı 10 dur

Ancak bunu tekrar & le filtrelediğimizde(ve işlemine tuttuğumuzda) sadece Sali kalacak ve doğru sonucu bize verecektir (1 veya 0 -->1 ,1 ve 0 -->0 döner)
Metod son olarak bu şekilde olacaktır.

Kod:

public void SinavGunlerGoster(Gunler gun) 
        {
            //MessageBox.Show(gun.ToString());
            if ((gun & Gunler.Sali) == Gunler.Sali)
            {
                MessageBox.Show("Sınav Var");
            }
            else 
            {
                MessageBox.Show("Sınav Yok");
            }
        }




Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.