Mini Seri : C# 7.0 Yenilikleri -1

Tahmini Okuma Süresi: 6 dakika

Geçtiğimiz günlerde Visual Studio 20. senesini kutladı. Mart ayı içerisinde de Visual Studio 2017 sürümü bizlerle buluştu.

C# tarafında da bir takım gelişmeler oldu. Veri tüketimi, kod basitleştirme ve performansa yönelik bir takım değişiklik setleri bizlere sunuldu. Birçok küçük ya da büyük özellik bizlere sunulmakta.
 Bu yazıda bu yenilikleri inceleyeceğim.

Out Variables

Metot içerisinde parametre olarak kullanılan referans değişkenlerinin, kullanılmadan önce tanımlanması gerekiyordu. Bu da yazılım geliştiriciler açısından ek bir iş, ayrıca odak kaybı demek oluyordu.
7.0 öncesinde outValue isimli integer tipli bir değişken tanımlamamız gerekiyordu.
7.0 ile birlikte şu şekilde bir kullanım da geçerli.

Biraz daha ötesi var. out tipini dinamik olarak belirlenecek şekilde “var” anahtar kelimesi ile kullanmak mümkün.

Parse işleminde dönüşüm yapılması gerekmiyorsa sadece bool olarak bu işlemin gerçekleşip gerçekleşmediği ile ilgileniyorsak;
aşağıdaki kullanımda  geçerlidir. “_” wildcard’ı kullanılarak da parse işleminin durumu değerlendirilebilmektedir.
Avantajları:
  • Okuması daha kolay kod.
  • Değişkenin önceden tanımlanmasına gerek kalmaması.

Tuples

.net 4.0 versiyonu ile birlikte sunulan Tuples sınıfı, bir metottan birden çok parametre dönmek istenildiğinde kullanılan bir obje idi.
Resimde görülebileceği üzere tuple objesinin aldığı parametreler, Item1, Item2 şeklinde erişilebiliyor.(Fular eksik) Bu da kod okunabilirliği açısından sıkıntı teşkil etmekteydi.
Yeni tuple kullanımında artık argümanlara isim verme imkânına sahipiz. Ancak bu özelliği kullanabilmek için System.ValueTuple nuget paketinin projeye dahil edilmesi gerekiyor.
C# 7.0’da tuple kullanımı :
Deconstruction sayesinde tuple içerisindeki tüm parametreleri ayrıştırmak mümkündür. C# 7.0’da tuple objeler mutable yani değiştirilemez olduğundan dolayı, metottan dönen değerleri ilgili scope içerisinde başka değişkenlere atayarak kullanmak isteyebiliriz. Deconstruction işlemi de bize bunu sağlamaktadır. Deconstruction işlemi sadece tuple tipleri için değil tüm tipler için de geçerlidir.
Avantajları:
  • Okuması daha kolay kod.
  • Bu tarz bir kullanım sayesinde, yeni bir tip tanımı yapmaya gerek kalmadan çoklu parametre dönebilen metotlar yazmak mümkündür.

Pattern Matching

Cast işlemleri c#7.0 öncesinde birkaç yöntem ile yapılabilmekteydi. Bunlardan en sık kullanılanlardan biri as operatörü vasıtasıyla tip dönüşümünü yapmak idi. Bunun için bir değişken kullanılarak as operatörü ile dönüştürülmek istenen tipe çevirmeye çalışıp, sonrasında null check yapabiliyorduk. C# 7.0 ile birlikte cast işlemi başarılı olursa direk tip değişkenine atama yapmak mümkün.

 

is operatörü ile yapılan pattern eşleşmesi Const değerler için,  custom types (kendi yazdığımız objeler), var anahtar kelimesi için de geçerlidir.

Bunun yanı sıra switch yapısı da artık bir takım objeleri değerlendirebilir şekle büründü.

Yukarıdaki kullanım da c#7.0 ile birlikte geçerli hale geldi.

Bu yazıda Out Variables, Tuples ve Pattern Matching yeniliklerine göz attık. Bir sonraki yazıda C#7.0 ile birlikte bizlere sunulan diğer özelliklere değineceğim.

Faydalı olması dileğiyle.

Leave a Reply

Your email address will not be published. Required fields are marked *