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>veReadOnlySpan<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?
- Projeyi .NET 10 hedefine yükseltin.
- Yeni özellikleri yeni yazdığınız kodda kullanmaya başlayın; eski kodu toplu dönüştürmek zorunda değilsiniz.
- 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.