İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Yapay Zeka
  • C# 15 Önizleme: Union, Closed ve Yeni Özellikler
DevOps Microsoft Azure Yapay Zeka C# 15, Closed hierarchies, Koleksiyon ifadeleri, union types, Unsafe bellek güvenliği Aşkın KILIÇ 24/08/2026 2 Yorumlar

C# 15 Önizleme: Union, Closed ve Yeni Özellikler

C# 15 Önizleme: Union, Closed ve Yeni Özellikler
📑 İçindekiler
  1. Union types: izin verilen tipleri türde belirtmek
  2. Closed hierarchies: kalıtım ağacını sınırlamak
  3. Bellek güvenliği modelinin yeniden tasarımı (preview)
  4. Collection expression arguments
  5. Extension indexers
  6. Etiketli break ve continue
  7. Önizlemeyi denemek
  8. İlgili İçerikler
  9. Kaynaklar ve İleri Okuma

⏱️ 5 dk okuma📅 24 Ağustos 2026

C# 15, Kasım ayında.NET 11 ile birlikte yayımlanacak. Yeni dil özelliklerini beklemeden.NET 11 Preview 7 üzerinden bugün de deneyebilirsiniz. Sürüm; union types, closed hierarchies, güncellenmiş unsafe modelinin ilk önizlemesi, koleksiyon ifadelerine argüman geçme, extension indexer’lar ve etiketli break/continue gibi eklentiler getiriyor. Bu yazıda her özelliği kısa örneklerle ve resmi referanslara bağlayarak topluyorum.

Union types: izin verilen tipleri türde belirtmek

Bir union type, bir değerin hangi tipleri taşıyabileceğini tip sisteminde net biçimde ifade eder. object, marker interface veya soyut bir taban sınıfla çalıştığınızda çalışma zamanı tipi bu tabandan türeyen herhangi bir şey olabilir. Union ise değeri belirtilen case type‘lardan biriyle sınırlar; case tiplerinin birbiriyle kalıtım ilişkisi olması da gerekmez.

public record class Cat(string Name);
public record class Dog(string Name);
public record class Bird(string Name);
public union Pet(Cat, Dog, Bird);

Yukarıdaki Pet yalnızca Cat, Dog veya Bird tutabilir. Her case type Pet‘e örtük olarak dönüşür. Derleyici tüm kümeyi bildiği için null olmayan bir Pet üzerindeki switch ifadesi, discard veya default kolu olmadan da exhaustive kabul edilir:

Pet pet = new Dog("Rex");
string name = pet switch
{
Dog d => d.Name,
Cat c => c.Name,
Bird b => b.Name,
};

Union tipleri, izin verilen tip kümesini açıkça belirtme fikrinin somut bir ifadesi. Aynı fikir closed hierarchies’te ve planlanan closed enum’larda da uygulanıyor.

Closed hierarchies: kalıtım ağacını sınırlamak

Closed hierarchies aynı yaklaşımı kendi tasarladığınız sınıf hiyerarşilerine taşır. Bir sınıfa closed modifier’ı eklediğinizde sınıf örtük olarak abstract olur ve doğrudan türeyen tipler yalnızca aynı assembly içinde tanımlanabilir. Türetme uçlarını açık bırakmak yerine hangi alt tiplerin izinli olduğunu açıkça bildirmiş olursunuz.

public closed record class JobStatus;
public record class Queued : JobStatus;
public record class Running(int PercentComplete) : JobStatus;
public record class Completed(TimeSpan Elapsed) : JobStatus;
public record class Failed(string Error) : JobStatus;

Closed hiyerarşiler, union types ve planlanan closed enum’lar, izinli şekiller kümesini doğrudan tip sisteminde ifade eder. closed modifier’ının kalıtımla nasıl birleştiğine dair ayrıntılar için resmi closed modifier ve closed hierarchy patterns belgelerine bakılabilir.

Bellek güvenliği modelinin yeniden tasarımı (preview)

C# 15, unsafe‘in yeniden tasarımını başlatıyor: “burada pointer var” diyen bir sözdizim işareti olmaktan çıkıp, derleyicinin doğrulayamadığı ancak geliştiricinin üstlendiği bir sözleşmeye dönüşüyor. Bu,.NET 11 ve C# 15’te preview statüsünde bir özellik; model ve sözdizim.NET 12 ile C# 16 sürecinde değişebilir. Denemek için proje dosyasına açıkça opt-in eklemek gerekiyor:

<Features>$(Features);updated-memory-safety-rules</Features>
<LangVersion>preview</LangVersion>

Yeni modelde pointer tipleri için artık unsafe bağlamı zorunlu değil. Güvenli bir bağlamda pointer tipi bildirebilir, & ile adres alabilir, fixed statement kullanabilir, stackalloc‘u pointer’a dönüştürebilir ve unmanaged tip üzerinde sizeof uygulayabilirsiniz.

Pointer’ı dereference eden işlemler ise unsafe gerektirmeye devam ediyor: pointer indirection (*p), pointer üzerinden üye erişimi (p->m), pointer üzerinden eleman erişimi (p[i]), fixed-size buffer eleman erişimi ve function-pointer çağırma.

Bir üyenin imzasına unsafe modifier’ı eklendiğinde ise bu üye yalnızca unsafe bir bağlamdan çağrılabilir. Mevcut davranışa göre bu bir breaking change. Üye, çağıranlarının sözleşmeyi sağlamasını beklediğini bildirmiş oluyor; çağıran da ya bu koşulu sağlamalı ya da kendi bildiriminde unsafe modifier’ını ileterek güvensizliği yaymalıdır.

Önizleme özelliği olduğu için tasarım kesinleşmedi; ekip csharplang üzerinden geri bildirim topluyor.

Collection expression arguments

Koleksiyon ifadeleri birçok koleksiyon tipine dönüşebiliyor; ancak şimdiye kadar altta yatan constructor’a veya Create metoduna argüman geçirmek mümkün değildi. C# 15, en başa yazılan bir with(...) elemanı ekleyerek argümanları constructor’a veya factory metoduna iletmeyi sağlıyor. Bu, gelecek dictionary expressions söz dizimi için de gerekli bir temel; sözlükte çoğu zaman bir comparer belirtmek gerekir.

// Önce
List<string> names = new(capacity: values.Length * 2);
names.AddRange(values);
var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase) { "Hello", "HELLO" };
// Sonra (C# 15)
List<string> names = [with(capacity: values.Length * 2),.. values];
HashSet<string> set = [with(StringComparer.OrdinalIgnoreCase), "Hello", "HELLO"];

Extension indexers

C# 14, extension member kavramını genişletmiş; metotların yanına property ve operator eklemeye de izin vermişti. C# 15 ise extension indexer‘ları getiriyor: alıcı üzerinde tanımlıymış gibi indeksleme yapılabiliyor. Indexer’lar static olamayacağı için extension container’ın adlandırılmış bir receiver içermesi gerekiyor.

// Önce: yardımcı metot
public static class SequenceExtensions
{
public static int ElementAtIndex(this IEnumerable<int> sequence, int index)
=> sequence.ElementAt(index);
}
int third = numbers.ElementAtIndex(2);
// Sonra (C# 15): extension indexer
public static class SequenceExtensions
{
extension(IEnumerable<int> sequence)
{
public int this[int index] => sequence.ElementAt(index);
}
}
int third = numbers[2];

Etiketli break ve continue

İç içe döngülerde dıştaki döngüyü kırmak genellikle bir flag, goto veya ayrı bir metot gerektirir. C# 15 ile döngüye etiket verilip break veya continue bu etiketi doğrudan hedefleyebiliyor.

// Önce: dış döngüyü kırmak için flag
bool found = false;
foreach (Warehouse warehouse in warehouses)
{
foreach (Bin bin in warehouse.Bins)
{
if (bin.Sku == requestedSku && bin.Quantity > 0)
{
reserved = Reserve(bin);
found = true;
break;
}
}
if (found)
break;
}
// Sonra (C# 15): döngüye etiket verip doğrudan kır
scan: foreach (Warehouse warehouse in warehouses)
{
foreach (Bin bin in warehouse.Bins)
{
if (bin.Sku == requestedSku && bin.Quantity > 0)
{
reserved = Reserve(bin);
break scan;
}
}
}

Bu yaklaşımın görünür kazancı, niyetin ek bir bayrak değişkeni olmadan doğrudan koda yansıması.

Önizlemeyi denemek

Özellikleri değerlendirmek için.NET 11’i indirip mevcut uygulamalarda C# 15’i açmak yeterli. Tam referans ve tartışmalar için resmi kaynaklar aşağıda..NET 11 Preview 7 kapsamında yayımlanan diğer platform yeniliklerine bakmak isteyenler .NET 11 Preview 7 Yayınlandı: Öne Çıkan Yenilikler yazısına göz atabilir.

İlgili İçerikler

  • Claude Sonnet 5 GitHub Copilot’ta: Özellikler ve Geçiş
  • MSVC Build Tools Haziran 2026 Önizleme: Sessiz Ama Derin İyileştirmeler
  • Claude Opus 4.8 GitHub Copilot’ta: Özellikler ve Geçiş

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • Explore new features available in C# 15 preview (Bill Wagner,.NET Blog)
  • What’s new in C# 15
  • C# 15 union types
  • Work with union types (tutorial)
  • Union types referansı
  • closed modifier referansı
  • Closed hierarchy patterns
  • Improving C# memory safety
  • Unsafe code referansı
  • Collection expressions referansı
  • Extension keyword referansı
  • dotnet/csharplang (dil tasarımı tartışmaları)
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor
AI Ajanları Cosmos DB vNext Emülatörüyle Buluşuyor23 Tem 2026
Microsoft Foundry’de Ajanları Dağıtmak: Asıl Oyun Şimdi Başlıyor
Microsoft Foundry’de Ajanları Dağıtmak: Asıl Oyun Şimdi Başlıyor5 Haz 2026
Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası18 Eki 2026
Azure Brain: Bulutun Sağlığını İzleyen AI Beyni Nedir?
Azure Brain: Bulutun Sağlığını İzleyen AI Beyni Nedir?13 Tem 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket C# 15 Closed hierarchies Koleksiyon ifadeleri union types Unsafe bellek güvenliği
Önceki yazı

Track organization code quality trends

Sonraki yazı

Visual Studio’da BYOM: Kendi AI Modelini Bağla

İlginizi Çekebilir

Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
Aşkın KILIÇ 0

Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol

18/10/2026
Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
Aşkın KILIÇ 0

Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası

18/10/2026
Open-Weight Model Riski: Kurumsal Değerlendirme Rehberi
Aşkın KILIÇ 0

Open-Weight Model Riski: Kurumsal Değerlendirme Rehberi

17/10/2026

2 comments

comments user
Tuğçe R. 25/08/2026 00:36

Union types’ı görmek gerçekten sevindirici, TypeScript’te alıştığımız bu özelliğin C#’a gelmesi epey zaman aldı. Closed hierarchies de discriminated union benzeri pattern’lar için çok işe yarayacak. Bu arada TypeScript tarafını takip edenler için şu yazı da güzeldi: https://www.askinkilic.com.tr/typescript-7-aralik-2025-native-port-nerede/

Yanıtla
comments user
Cem A. 25/08/2026 01:48

Union types’ı çok bekliyordum açıkçası, F# tarafından gelenler için özellikle büyük fark yaratacak. Closed hierarchies ile birlikte pattern matching daha da güçlenecek gibi görünüyor. Etiketli break/continue ise Java’dan aşina olduğum bir özellik, sonunda C#’a da geliyor.

Yanıtla

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • GitHub Copilot'ta Kaldırılan Modeller ve Geçiş Planı
    18/10/2026 GitHub Copilot’ta Kaldırılan Modeller ve Geçiş Planı
  • Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
    18/10/2026 Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
  • Visual Studio 2026: İlk Hatada Derlemeyi Durdurma
    18/10/2026 Visual Studio 2026: İlk Hatada Derlemeyi Durdurma
  • Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
    18/10/2026 Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
  • GitHub Code Quality Lisans Kullanımını CSV ile Doğrulayın
    17/10/2026 GitHub Code Quality Lisans Kullanımını CSV ile Doğrulayın
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure OpenAI azure sdk Azure SQL CI/CD code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans public preview Pull Request RAG REST API SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Track organization code qualit...
    Visual Studio’da BYOM: K... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS