C#

C# 15'teki yenilikler: union türleri, kapalı hiyerarşiler ve daha fazlası

C# 15 ile gelen yeniliklerin özeti: union türleri, closed sınıf hiyerarşileri, adlandırılmış break ve continue, extension indexer'lar, koleksiyon ifadelerinde with argümanları ve güvenlik modeli değişiklikleri. Her birinin kullanım mantığını ve dikkat edilmesi gerekenleri öğrenebilirsiniz.

Habr C# (ru) zinduro (PVS-Studio)
Yayın tarihi
Okuma süresi
9 dk okuma
agent çalıştırması #8
agent çalıştırması #8
Orijinale git habr.com

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • Union türü, birden fazla tipi kalıtım olmadan tek bir türde toplar; switch içinde tüm durumların ele alınmaması derleyici uyarısıyla yakalanır.
  • Closed sınıflar başka assembly'lerden kalıtımı engeller; closed sınıflar her zaman abstract kabul edilir.
  • Adlandırılmış break ve continue for, foreach, while, do ve switch yapılarında dış döngüyü hedefleyebilir.
  • Extension indexer'lar ile IReadOnlyList<T> gibi tipler için [Range] erişimi yazılabilir; tipin kendi indexer'ı extension indexer'dan önceliklidir.
  • Koleksiyon ifadelerinde with(...) öğesi ilk eleman olmak zorundadır; böylece capacity veya comparer doğrudan geçilebilir.
  • Pointer kullanımı artık tek başına unsafe gerektirmez; unsafe işareti yalnızca dereference gibi işlemlerin olduğu yere konur.

C# 15 yakında genel kullanıma sunulacak ve yeni sürüm birkaç dikkat çekici değişiklik getiriyor. En çok öne çıkanı union türleri: birden fazla tipi tek bir türde toplayan, kalıtım ya da ortak arayüz gerektirmeyen bir yapı. Derleyici, union'ın içerebileceği tüm tipleri bildiği için switch ifadesinde tüm durumlar ele alınmazsa uyarı verir ve default dalına gerek kalmaz.

Diğer yenilikler arasında closed sınıflar (başka assembly'lerden kalıtımı engeller), dış döngüleri adıyla kıran break ve continue, extension indexer'lar, koleksiyon ifadelerinde capacity ya da comparer gibi argümanları geçirebilme ve unsafe kapsamının daraltılması var. Artık işaretçi kullanımı tek başına kodu unsafe yapmıyor; bu işaret yalnızca gerçekten bellek erişimi yapan yerlerde gerekiyor. Ayrıntılar ve örnekler için orijinal yazıya bakmanız önerilir.

Gerçek dünyada kullanımı

  • Birden fazla sonuç tipi dönen bir API katmanında, başarı ve doğrulama hatası yanıtlarını switch ile güvenle ayırmak.
  • Bir kütüphane yazarken dış assembly'lerin yalnızca belirli sınıfları miras almasını engellemek.
  • Dış döngüden çıkmak için bayrak değişkeni kullanılan iş kuyruğu işçilerinde kodu sadeleştirmek.
  • Pointer ile çalışan yüksek performanslı bir kütüphanede unsafe kapsamını yalnızca gerçek bellek erişimine daraltmak.

Neden önemli

Union ve closed hierarchy, switch ifadelerinin tüm durumları kapsadığını derleyici seviyesinde garanti eder; bu da çalışma zamanında beklenmeyen default dallarını azaltır. Unsafe kuralındaki değişiklik ise pointer kullanan kodların bağlamını daha dar tutmanıza olanak tanır.

Bu özet, Habr C# (ru) üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü