C# programlama dilinde Lambda ifadeleri (lambda expressions), anonim metodlara göre (bkz: C# Anonymous Methods Kullanımı ve Örnekleri (İsimsiz Metodlar)) daha az kod ile yazılabilen ve daha pratik bir alternatifidir.
Lambda ifadelerini daha çok LINQ ile birlikte yapacağımız için bu yazıda önceki delegate konusunun devamı niteliğinde örnekler paylaşmak ve Lambda ifadeleri ile daha önce yazdığımız kodları nasıl daha kolayca yazabileceğimizi göstermek istiyorum.
Önek 1: Anonim fonksiyon kullanarak yazdırdığımız çıktıyı lambda ifadesi kullanarak tekrar yazdıralım.
public delegate string MerhabaDelegate(string yazi);
static void Main(string[] args)
{
// MerhabaDelegate selamVer = delegate (string isim) {
// return "merhaba " + isim;
// };
MerhabaDelegate selamVer = (string isim) => {return "Merhaba " + isim; };
System.Console.WriteLine(selamVer("reitix"));
}
Çıktı:
Merhaba reitix
Bu örnekte aşağıdaki kodlar bir lambda ifadesidir:
(string isim) => {return "Merhaba " + isim; };
Örnek 2:
MerhabaDelegate nasilsinSor = (string isim) => {
return "nasilsin " + isim;
};
Örnek 3: Daha da kısa yazım ile bir lambda ifadesi yazalım.
MerhabaDelegate hosgeldinDe = isim => "Hoşgeldin " + isim;
Not: C# isim parametresinin bir string olduğunu zaten MerhabaDelegate delegate'inden biliyor. return ifadesine de bu kullanımda gerek yok, çünkü delegate imzasında bu da yazılı.
Not 2: Eğer iki parametre gerekli olsaydı parantez kullanmamız gerekirdi.
Önceki bazı diğer benzer yazılarım için;
bkz: C# Polymorphism (Çok Biçimlilik) Nedir?
bkz: C# Base Anahtar Sözcüğü Nedir? Kullanımı ve Örnekleri
bkz: C# IEnumerable Nedir?
bkz: C# ile params anahtar sözcüğü kullanımı ve örnekleri
bkz: C# ve Generic ile Non-Generic Koleksiyonlar Nelerdir?
bkz: Interface Nedir?