Otomatik Mühendis

C# 7.0 ile Gelen Yeni Yetenekler

günü tarafından yayınlandı.

C# 7.0 ile programlama diline; veri yönetimine, kod sadeleştirmeye ve performansa yönelik yeni yetenekler katıldı. Bunlardan en önemlileri çoklu sonuç döndürmemizi sağlayan tuples ve verinin şekillendirilmesini kolaylaştıran pattern matching. Daha temiz ve verimli kodlar yazmamız artık daha kolay.

Out variables

Parametrelerde verilen out anahtarı artık satıriçi değişken tanımlamaya da izin veriyor. Tanımlama yapmak istemiyorsanız _ yazmanız yeterli.

Patterns “is”

Constant, Type veya Var pattern ile koşul yazılabilir hatta out anahtarında olduğu gibi nesnenin tipi uygunsa doğrudan koşuldaki tipte bir değişken üretilebilir.

Switch statements

Artık switch case koşullarında eşitlikten daha fazlası istenebiliyor. Koşullar için when kelimesi kullanılıyor.

Tuples

Bu özellik için öncellikle System.ValueTuple referansı eklenmesi gerekiyor. Fonksiyonun dönüş parametresi tuple type olarak tanımlandığında, isimli ise isimleriyle, isimsiz ise Item1, Item2 vb. isimlerle ile erişilebilir. Diğerlerinde olduğu gibi yine satır içi değişken tanımlaması yapılarak veya yerel değişkenlere atanarak Tuples yok edilebilir.

Local Functions

Fonksiyon scope’u içerisinde private fonksiyonlar yazılabilir. Bu yöntem recursive methodların düzenli kullanımını sağlayacaktır.

Literal improvements

Kodun okunabilirliğini arttırmak adına _ işareti sayı ayracı olarak kullanılabilir.

Ref returns and locals

Artık ref modifier ile değerden daha fazlasını ifade eden referansını yani dizinin içindeki yerini dönebilirsiniz.

Bu yeteneklerin tümünü aşağıdaki kod blogundaki gibi uygulayabiliriz;

Son olarak bunları kullanabilmek için Visual Studio 2017 kullanmalısınız. Eğer yoksa Visual Studio 2017 Community sayfasından ücretsiz Community versiyonunu indirebilirsiniz.

Kaynak: New Features in C# 7.0

C# Yazılım

Yazar: Olcay Bayram

Çeşitli teknoloji firmalarında çalışmış, yurtiçi ve yurtdışı farklı sektörlerden tecrübe edinmiş, derdini iki yabancı dilde anlatabilen bir yazılım uzmanı.