8 Mar, 2017 C# ile FTP’ye Dosya Gönderme İşlemleri
Mert Yeter 09/03/2018 Okuma süresi: 1dk, 51sn
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
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
TAGs: Value Tuples nedir, Value Tuples kullanimi, Value Tuples, C#, C#7.0, ValueTuple, Tuple, Discard,Visual Studio
Etiketler: c, C#7.0, Discard, Tuple, Value Tuples, Value Tuples kullanimi, Value Tuples nedir, ValueTuple, visual studio