C#’ta “yield” Anahtar Kelimesinin Sihirli Dünyası 🎩✨

Cenker Kumlucalı
2 min readAug 16, 2023

--

Selam sevgili okuyucu! Bazen biraz gözardı edilen ama kesinlikle bir “kara büyü” kadar güçlü olan C#’ın yield anahtar kelimesinden bahsedeceğiz.

Nedir Bu “yield”?

yield anahtar kelimesi, C#'da gerçekten kullanışlı bir araçtır, özellikle koleksiyonları döndüren metodlarda. İterasyonu daha etkili bir şekilde kontrol etmemizi sağlar.

Basitçe, yield return kullanarak, her çağrıldığında bir sonraki öğeyi döndüren bir koleksiyon oluşturabilirsin. Böylece tüm koleksiyonu bellekte tutmak yerine sadece bir öğeyi tutar ve daha fazla bellek tasarrufu sağlar. Güzel, değil mi?

Örnek Zamanı!

Düşünelim ki, basit bir numara listesi döndüren bir metodunuz var.

public static IEnumerable<int> NumaraUret()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Numara üretildi: {i}");
yield return i;
}
}

Şimdi bu fonksiyonu çağırdığınızda ne olacak? Şöyle bir şey:

foreach (var num in NumaraUret())
{
Console.WriteLine($"Numara: {num}");
}

Çıktı:

Numara üretildi: 0
Numara: 0
Numara üretildi: 1
Numara: 1
...

Gördüğünüz gibi, her yield return çağrısı bir sonraki döngüye kadar bekliyor. Bu, büyük koleksiyonlarda bellek tasarrufu sağlar!

Neden Bu Özellik Bize Faydalı?

yield, özellikle büyük veri setleriyle çalışırken performansı artırmak için kullanışlıdır. Sadece gerektiğinde öğeleri üretir, bu da gereksiz bellek kullanımını önler. Özellikle veri tabanından büyük miktarda veri çekerken veya dosyalardan okuma yaparken oldukça işe yarar.

Sonuç

yield, C# dilindeki gerçekten büyülü özelliklerden biridir. Sadece kod yazarken değil, aynı zamanda sistemlerimizi daha verimli kılmak için de önemlidir. Mutlu kodlamalar! 🚀🎈

--

--

No responses yet