C# 7.0 İle Beraber Gelecek Yenilikler

C# 7.0, Bu makalemizde C# 7.0 ile beraber gelecek yeniliklerden bahsedeceğim ve bu yeniliklerin her birini bir örnek üzerinden anlatmaya çalışacağım.

C# 7.0 İle Beraber Gelecek Yenilikler

C# 7.0 İle Beraber Gelecek YeniliklerBaşlıkda ‘Gelecek’ diye bir kelime kullanılmasının nedeni henüz Release olarak sunulmuş değil bu özellikler ve Visual Studio 2017 ile beraber artık kodlarımız arasına girmesini bekliyoruz bu özelliklerin ama siz önceden test etmek isterseniz Visual Studio 2017 RC Community Edition sürümünü ücretsiz indirip deneyebilirsiniz.

C# 7.0 ile beraber gelen yenilikleri anlatırkan alttaki listeye göre örneklerle anlatmaya çalışacağım böylelikle örnekler üzerinden olayı daha iyi anlayacağız.

  • Out Keyword
  • Pattern Matching
  • Switch Expression
  • Local Functions
  • Tuples
  • Binary Literal
  • Ref returns and locals

Out Keyword

C#’da out ile beraber kullandığımız parametrelerin şuan ki tanımı maalesef pek hoş değil nedenide öncelikle değişken tanımı yapıp daha sonra bu değişkeni out ile tanımlanmış parametreye vermeniz gerekiyor ama C# 7.0 ile beraber artık parametreye geçerken out tanımı yanında tipinide belirterek daha öncesinde bir değişken oluşturmak zorunda kalmayacağız böylelikle daha sade ve anlaşılır bir kod oluşturmuş olacağız. Şimdi bir örnek ile ne demek istediğimi görelim;

Varolan Yöntem

Yeni Yöntem

Not: Üstte gördüğünüz tanımda WriteLine() kullandığımız satırda kapsamına girmemesine rağmen int.TryParse… adlı metod içerisinde yer alan out keyword’lü result adlı parametre sonrasındaki kod satırlarından ulaşılmasını sağlıyor.

Out keyword’u için bir başka örnek daha yapalım oda şöyle olacak parametre olarak geçeceğimiz string sayısal değeri TryParse… edip eğer sayısal bir değer ise girdiğimiz değer kadar * karakteri basılmasını sağlayacağız konsola.

Not: Burada dikkat edilmesi gereken bir durum var i tanımını if bloğu arasında kullandığımız TryParse metodu içinde yapmış olsakta if bloğu dışındada kullanabiliyoruz.

Pattern Matching

Şimdi pattern matching için is ifadesi üzerinden örnek verelim.

Üstteki kodumuzda o is null tanımında o adlı değişkenin null olup olmadığını kontrol edebiliyor oluyoruz C# 7.0 ile beraber, ayrıca Out değişkenlerinde olduğu gibi is ifadesi sonrasında eğer tip eşleştirmesi sağlanırsa değişken tanımınında aynı kısımda yapılması hızlıca sağlanıyor böylelikle çok kısa ve anlaşılır bir kod ile yazabiliyor olacağız kodumuzu.

o is int i satırından sonra WriteLine içerisinde i değişkenini kullanabildiğimizide görüyorsunuz.

Şimdi Try… metodları ile beraber is ifadesini nasıl kullanabileceğimizi görelim.

if’de yer alan ilk koşulumuzu bir üstteki kodumuzda gördük fakat ikinci koşulumuzda TryParse adlı metodun o is tring s şartında yer alan s değişkenine erişebildiğinide görüyoruz ve her iki koşuldada i adlı bir değişken oluşturuluyor ve bizde bu değişkeni blok içerisinde kullanabiliyoruz.

Switch Expressions

Bence C# 7.0 ile gelecek en güzel değişikliklerden biride switch-case için yapılmış değişikliklerdir. switch-case‘de kullanabildiğimiz tipler sınırlıydı ve sınıfları switch-case‘de kullanmak için taklalar atılması gerekiyordu ilk yenilik tamda burada geldi işte artık sınıfları swith ve case’de kullanabiliyor oluyoruz ve bu sınıfların özelliklerinede case blokları arasında erişebiliyoruz.

Diğer bir yenilikde case bloklarında when ile koşullar belirtebiliyoruz buda gerçekten çok başarılı bir değişiklik olmuş.

Son olarak case‘de null kontrölü yapılamıyordu artık case null: şeklinde bir kullanımda yapabiliyoruz.

Local Functions

Bu tam olarak şu anlama geliyor nested metod tanımları yapabiliyoruz class’larda olduğu gibi ama bir fark var nested class’larda iç içe girmiş classları access modifiers’ları izin verdiği sürece erişebiliyorduk ama iç içe girmiş metodlara dışarıdan erişme gibi bir durum yok tanımlı olduğu metod içerisinde kullanılabilmektedir.

Tuples

Tuple yeni bir özellik değil sadece tanım daha basit hale getirilmiş şimdi bir örnek ile eski ve yeni kullanımı görelim.

Varolan Kullanım

Yeni Kullanım

Binary Literal

Artık binary değer tanımlarını alttaki kodda gördüğünüz gibi yapabiliyoruz.

Ref Returns And Locals

Artık geri dönüş tipi tanımlarında değişken tanımlarında ve metod kullanımında ref anahtar kelimesini kullanabiliyoruz. Böylelikle referans olarak işaretlediğimiz değerler üzerinde yaptığımız değişiklikler referans olarak işaretlenmiş ve kullanılmış her yerde otomatik değişecektir bu int değer olur, array olur veya list nesneleri olur.

Tüm kodlar

[fa class=”fa-github”] Şimdiye kadar anlattıklarımızı ve diğer C# 7. 0 örnekleri  için buraya tıklayıp github repository’isinden erişebilirsiniz.

Bu özelliklerin bazılarını Mads Torgersen anlatımıyla izlemek isterseniz alttaki videoyu seyredebilirsiniz.

Kaynaklar

5/5 - (2 votes)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et