Furkan KapukayaYazılım geliştirme
C# ve .NET2 dk okuma

C# 14 Yenilikleri: Extension Members, field Anahtar Kelimesi ve Daha Fazlası

.NET 10 ile gelen C# 14'ün öne çıkan özellikleri; extension members, field anahtar kelimesi, null-conditional atama, span dönüşümleri ve lambda parametre değiştiricileri örneklerle.

C# 14, .NET 10 ile birlikte yayımlandı ve günlük kod yazımını sadeleştiren birçok özellik getirdi. Bu yazıda en çok işinize yarayacak yenilikleri kısa örneklerle özetliyoruz. Genel .NET 10 değişiklikleri için .NET 10 ve C# 14 yenilikleri yazımıza da bakabilirsiniz.

Extension members

Önceden yalnızca extension metot yazılabiliyordu. C# 14 ile yeni extension blokları sayesinde extension property ve statik üyeler de tanımlanabiliyor.

public static class EnumerableExtensions
{
    extension<T>(IEnumerable<T> source)
    {
        public bool IsEmpty => !source.Any();
    }
}

// Kullanım
if (siparisler.IsEmpty) { ... }

field anahtar kelimesi

Bir property'de küçük bir doğrulama yapmak için artık ayrı bir private alan tanımlamak gerekmiyor. field, derleyicinin oluşturduğu arka alanı temsil ediyor.

public string Ad
{
    get;
    set => field = value?.Trim() ?? throw new ArgumentNullException(nameof(value));
}

Null-conditional atama

?. operatörü artık atamanın sol tarafında da kullanılabiliyor. Nesne null değilse atama yapılır.

musteri?.SonGiris = DateTime.Now;

Lambda parametrelerinde değiştiriciler

Tür belirtmeden out, ref gibi değiştiriciler kullanılabiliyor.

TryParse<int> ayrıştır = (text, out sonuc) => int.TryParse(text, out sonuc);

Diğer yenilikler

  • Span dönüşümleri: Diziler ile Span<T> ve ReadOnlySpan<T> arasında daha doğal örtük dönüşümler.
  • nameof ile açık olmayan generic türler: nameof(List<>) gibi kullanımlar.
  • Partial constructor ve event: Kaynak üreticilerle (source generator) çalışan senaryolar için.
  • Kullanıcı tanımlı bileşik atama operatörleri: += gibi operatörlerin özel olarak tanımlanabilmesi.

Projeye nasıl uygulanır?

  1. Projeyi .NET 10 hedefine yükseltin.
  2. Yeni özellikleri yeni yazdığınız kodda kullanmaya başlayın; eski kodu toplu dönüştürmek zorunda değilsiniz.
  3. Takım içinde stil kurallarını (.editorconfig) güncelleyin.

Sık sorulan sorular

Mevcut kodum C# 14 ile bozulur mu?

Yeni özellikler genellikle geriye dönük uyumludur. Ancak field gibi yeni bağlamsal anahtar kelimeler, aynı adlı mevcut değişkenlerle nadiren çakışabilir; derleyici bu durumda uyarı verir.

C# 14 için .NET 10 şart mı?

Varsayılan olarak C# 14, .NET 10 hedefleyen projelerde kullanılır. Eski hedeflerde dil sürümünü zorlamak önerilmez.

Sonuç

C# 14, daha az tekrar ve daha okunaklı kod demek. Projelerinizi .NET 10'a taşımak için destek alabilirsiniz.