Sem GÖKSU - Kişisel Web Sitesi Ana Sayfa | Hakkımda | Çalışmalarım | Kitap Önerileri | Fotoğraflarım | RSS RSS | İletişim
İçerik Kategorileri
Makale Kategorileri
Etiket Bulutu
Arama
Tema
Kaynaklar
Takip Ettiklerim

C# 4.0

C# 4.0 Dynamic Type (Dinamik Tip) Kullanımı


C# 4.0 ile birlikte "dynamic" isimli yeni bir static tip var. Dynamic tipi değişkenin tipinin dinamik olarak atanmasını (Dynamic Dispatch) sağlıyor.

Örneğin Icecek ve yiyecek isimli iki tipimiz var. Kullanıcının seçim yapacağı bir metot yazalım. Bu metot Menu isimli bir Enum alsın. Bu enumun değerine göre de geriye değer döndürsün. C# 4.0 ile birlikte gelen Dynamic tipini kullanarak geriye dönen tipin dinamik olarak belirlenmesini sağlayabiliyoruz.

void Main(string[] args)
{
    // C# 4.0 Öncesi
    Icecek secim = NeAlirsiniz(Menu.Icecek) as Icecek; // Metodun döndürdüğü tipi cast ederek Icecek tipine çevirmemiz gerekiyor
    secim.IcecekIc();

    // C# 4.0 Dynamic Language Runtime
   dynamic secim2 = NeAlirsiniz(
Menu.Icecek); // Tip dinamik olarak belirleniyor
   
secim2.IcecekIc();
    
    // Tipine bakalım...
    Console.WriteLine(secim2.GetType().Name);
}

static Object NeAlirsiniz(Menu menu)
{
    if(menu == Menu.Icecek)
        return new Icecek();
    else
        return new Yiyecek();
}

enum Menu
{
    Yiyecek,
    Icecek
}

public class Icecek
{
    public void IcecekIc()
    {
        Console.WriteLine("Yarasın..");
    }
}

public class Yiyecek
{
    public void YemekYe()
    {
        Console.WriteLine("Afiyet olsun..");
    }
}

Bu makaleye henüz yorum yapılmamış. | 17.03.2009 14:24:23

C# 4.0 Optional Parameters(Opsiyonel Parametre) Kullanımı


Visual Basic'de en beğendiğim özelliklerden biri metot ve fonksiyonlar da opsiyonel parametre tanımlanabilmesydi. C# 4.0 ile birlikte artık C# da da optional parametre kullanabileceğiz. (Biraz geç kalındı sanırım :))

Optional bir parametre tanımlayabilmek için metot parametrelerine ilk değerini vermemiz yeterli oluyor.

private static void Topla(int a = 20, int b = 15, int c = 100) // Optional parametrelere ilk değerlerini vermek zorundayız. Eğer vermezsek optional olarak kullanamıyoruz.
{
    Console.WriteLine(a + b + c);
}

private static void Selamla(string isim = "İsimsiz Kahraman")
{
    Console.WriteLine("Selam => " + isim);
}


static void Main(string[] args)
{
    Console.WriteLine("C# 4.0 öncesi"); // Tüm parametreler için değer gönderilmesi zorunluydu...
    Topla(10, 20, 30);
    Console.WriteLine("C# 4.0 ile Named and Optional Parametre kullanımı");
    Topla(b:10, c: 30); // C# 4.0 ile birlilkte hangi parametreleri kullanacağımızı biz belirliyoruz. B ve C Parametrelerin isimlerini kullanarak değerlerini atadık.
    Console.WriteLine("---------------------------------------------------------");
    Console.WriteLine("C# 4.0 öncesi");
    Selamla(
"Sem GÖKSU"); // Parametre gönderilmesi zorunluydu...
    Console.WriteLine("C# 4.0 ile Optional Parametre kullanımı");
    Selamla(); // C# 4.0 ile birlilkte eğer bir parametre optional ise o parametreyi metoda göndermek zorunda değiliz, Bu durumda parametrenin default değeri neyse ona göre işlem yapılacaktır..
}

Ekran Çıktısı
C# 4.0 öncesi
60
C# 4.0 ile Named and Optional Parametre kullanımı
60
---------------------------------------------------------
C# 4.0 Öncesi
Selam => Sem GÖKSU
C# 4.0 ile Optional Parametre kullanımı
Selam => İsimsiz Kahraman

Bu makaleye 2 yorum yapılmış. | 17.03.2009 13:21:45

Ana Sayfa | Hakkımda | Çalışmalarım | Kitap Önerileri | Fotoğraflarım | RSS | İletişim
Sem Göksu 2004-2009 © Tüm Hakları Saklıdır.