Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

C# 9.0 – Lambda Discard Parameters

Merhaba,

C# 7.0 sürümünde hayatımıza girmiş olan Discard Kavramı, C# 9.0 versiyonunda alanını daha da genişleterek lambda ifadelerinde de kullanılabilir bir hal almıştır.

Herşeyden önce Discard’ın ne olduğunu hatırlayarak başlayalım… Değişken tanımlamaya ihtiyaç duyulmadığı durumlarda lüzumsuz yere bellekte alan tahsisine mahal verilmemesi için Discard operatörü kullanılmaktadır.

İçeriğimizin giriş paragrafında referans edilen adreste Discard’a dair tam teferruatlı izahatte bulunmuştuk. O yüzden fazla detaylara girmeksizin genel geçer bir örneklendirmeyle ilgili operatörü özetleyeceğiz;

            int a = 5;
            _ = 5;

Yukarıdaki örneğe göz atarsanız eğer; 1. satırdaki, bellekte ‘5’ değeri tahsis edilmiş (int) türünden bir alanı kaplayan değişken tanımlamasına karşılık gelirken, 2. satırdaki ise program akışında söz konusu olan ‘5’ değeri ne bellekte tutulmakta ne de bunu tutacak bir değişken tanımlaması yapılmaktadır. İşte Discard, bu tarz değerlerin belleğe atama işlemi olmaksızın çöp olarak kabul edilmesini sağlayan bir operatördür.

Velhasıl… C# 9.0’dan önce lambda ifadelerinde parametre olarak kullanılamayan discard operatörü, C# 9.0 ile birlikte lambda ifadelerinde de gönül rahatlığıyla kullanılabilir hale gelmiştir.

Func<int, int, string> func = (_, _) => "ABC";

Böylece, lambda ifadelerinin sıklıkla kullanıldığı Func gibi delegasyonel yapılanmalarda, süreçte herhangi bir algoritmik etkinliği olmayan parametrelerin bellekte lüzumsuz yer işgal etmesinden ziyade discard ile sembolik tanımlamaları sağlanmakta ve böylece hem kodun sistemdeki yarattığı maliyet optimize edilmiş olmakla birlikte, hem de performansı desteklenmektedir.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*