1. Anasayfa
  2. C#

C# 7.0 Value Tuple ve Discard


0

C# 7.0 ile tanıştığımız Value Tuples özelliğine geçmeden önce .NET 4.0 ile gelen Tuple sınıfını kısaca hatırlayalım. Birden farklı tipte değeri ekstra bir sınıf tanımlamadan dönmemizi sağlayan Tuple sınıfını sıralı bir liste olarak düşünebiliriz.


Resim-1 : System.Tuple

Tuple’ın sıkıntılı olabilecek yönlerinden birisi class yani referans tipinde olması. Heap üzerinde allocate edildiğinden, yoğun CPU gerektiren operasyonlarda performans açısından kritik uygulamalar için sorun olabilir.

Bir diğer problem ise Resim-1‘de göreceğiniz üzere değerlerin belli bir isimle değil, Item1 ve Item2 şeklinde alınması, bu değerlerin tam olarak ne olduğunu ilk bakışta anlaşılmasını zorlaştırıyor.

Value Tuple’ı ise System.Tuple sınıfının (adından da anlaşılacağı gibi) değer tipli versiyonu olarak tanımlayabiliriz. Eğer NET Framework 4.7, ya da .NET Standard Library 2.0 kullanmıyorsanız NuGet’ten System.ValueTuple paketini (şu anda en güncel 4.4.0 versiyonu bulunuyor) kurmanız gerekecektir. Resim-2‘de göreceğiniz gibi Value Tuple ile sadeleştirilmiş bir kullanım ile birlikte, dönüş değerlerine de isimlendirerek kodumuzu da daha anlaşılır hale getirebiliyoruz.


Resim-2 : Value Tuple

GetTuple methodundan dönen değerleri yerel değişkenlere Resim-3‘te göreceğiniz gibi deconstruction yaparak atayabiliriz.


Resim-3 : Value Tuple deconstruction

GetTuple methodundan sadece intVal değerini kullanacağız ve strVal değerine ihtiyacımız olmadığı için bir değişken tanımı yapmak istemiyoruz. Bu durumda da _ keyword’ünü kullanarak Discard
özelliğinden faydalanabiliriz.


Resim-4 : Value Tuple Discard

Discard özelliğini sadece atama yapabildiğimiz ancak okuma yapamadığımız yerel değişken olarak düşünebilirsiniz.

Discard’ın bir başka kullanım ihtiyacına, Resim-5‘te göreceğiniz gibi TryParse methodlarının sadece sonucuyla ilgilendiğimiz durumları gösterebiliriz. Discard keyword’ü IntelliSense’de çıkmadığı gibi bir değişken gibi de kullanılamayacaktır.


Resim-5 : Discard

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://blogs.msdn.microsoft.com/mazhou/2017/05/26/c-7-series-part-1-value-tuples/

TAGs: Value Tuples nedir, Value Tuples kullanimi, Value Tuples, C#, C#7.0, ValueTuple, Tuple, Discard,Visual Studio

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir