none
=> Bu nedir acaba? RRS feed

  • Soru

  • Merhaba Arkadaşlar..

    Kaynak gezerken böyle bir ifade görüyorum devamlı. EDM ile yazılanların içinde geçiyor. => bu işareti google dan da bulamadım. Özel işaret olduğundan farklı şeyler çıkıyor.

    Buradaki "=>" operatör ne işe yarıyor. Aşağıda örnek var?

    var  person = adressBook.Persons .Single (c => c.PersonId  == id);

    12 Ocak 2014 Pazar 10:55

Yanıtlar

  • sol taraf metoda giren parametreleri sağ taraf ise return kısmını belirtir. Bir metodun kısa ve isimsiz yazılmış halidir örneğin :

    int Topla (int a, int b){return a + b;}

    gibi bir metodun olsun bu :

    (a,b) => a+b;

    şeklinde satır içi ve isimsiz ifadelerde yazılabilir. (Dışarıa bu şekilde metot tanımı bir sonraki c# sürümünde olacağı dedikodular var. Şu an typescript de var)

    Yani 

    adressBook.Persons .Single (c => c.PersonId  == id);

    dediğinde

    c => c.PersonId  == id 

    kısmı aslında

    bool MetotAdı ( Person c){	return c.PersonId  == id;}

    metodu ile aynı işi yapar ( bir person alır ve geriye true/false döndürür). İstersen bu metodu dışarıda aynı bu şekilde tanımlayıp:

    adressBook.Persons .Single (MetotAdı );

    şeklinde de yazabilirsin. Çünkü aynı işi yapmaktadırlar.

    FAKAT ef gibi queryable lar sadece func almazlar onlar expression yani ifade alırlar o kısmı kendi araştır :D

    • Yanıt Olarak İşaretleyen Tolga_Cakir 12 Ocak 2014 Pazar 19:14
    12 Ocak 2014 Pazar 13:03
    Moderatör

Tüm Yanıtlar

  • Linq yazım biçimi olan Lambda da kullanılan bir operatör. Func belirtmede kullanılıyor. Verdiğiniz örnekte tek kayıt seçen Single Linq extension methodunu kullanmışlar yüklem olarak da Personel Id nin id ye eşit olma koşulu verilmiş. Lambda ifadesi içinde c, Persons IEnumerable Listenin elemanını temsil ediyor.

    Başka bir örnek;

    var  people = adressBook.Persons.OrderBy(c => c.Name);

    burada OrderBy a-z sıralama yapan bir Linq methodu. Sıralama yapılacak alanı belirtmede Func kullanılıyor.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    • Yanıt Olarak Öneren ilyas keskin 12 Ocak 2014 Pazar 13:02
    12 Ocak 2014 Pazar 11:36
    Moderatör
  • sol taraf metoda giren parametreleri sağ taraf ise return kısmını belirtir. Bir metodun kısa ve isimsiz yazılmış halidir örneğin :

    int Topla (int a, int b){return a + b;}

    gibi bir metodun olsun bu :

    (a,b) => a+b;

    şeklinde satır içi ve isimsiz ifadelerde yazılabilir. (Dışarıa bu şekilde metot tanımı bir sonraki c# sürümünde olacağı dedikodular var. Şu an typescript de var)

    Yani 

    adressBook.Persons .Single (c => c.PersonId  == id);

    dediğinde

    c => c.PersonId  == id 

    kısmı aslında

    bool MetotAdı ( Person c){	return c.PersonId  == id;}

    metodu ile aynı işi yapar ( bir person alır ve geriye true/false döndürür). İstersen bu metodu dışarıda aynı bu şekilde tanımlayıp:

    adressBook.Persons .Single (MetotAdı );

    şeklinde de yazabilirsin. Çünkü aynı işi yapmaktadırlar.

    FAKAT ef gibi queryable lar sadece func almazlar onlar expression yani ifade alırlar o kısmı kendi araştır :D

    • Yanıt Olarak İşaretleyen Tolga_Cakir 12 Ocak 2014 Pazar 19:14
    12 Ocak 2014 Pazar 13:03
    Moderatör