İlginizi Çekebilir
  1. Ana Sayfa
  2. C#
  3. C# 7.0 Value Tuple ve Discard

C# 7.0 Value Tuple ve Discard

# 7.0 ile tanıştığımız özelliğine geçmeden önce .NET 4.0 ile gelen 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 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. 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
ö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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

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

TAGs: , , Value Tuples, C#, , ValueTuple, Tuple, Discard,

Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi Gemi İnşaatı Mühendisliği bölümünde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi Bilgi Teknolojileri bölümü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. Şu anda da Done'de Cloud Development Manager olarak Azure, .NET Core, SQL Server, Docker vb güncel teknolojiler üzerinde çalışmaktadır.

Yorum Yap