Aracılığıyla paylaş


C# 13'teki yenilikler

C# 13 aşağıdaki yeni özellikleri içerir. En son Visual Studio 2022 sürümünü veya .NET 9 Önizleme SDK'sını kullanarak bu özellikleri deneyebilirsiniz.

C# 13 , .NET 9'da desteklenir. Daha fazla bilgi için bkz . C# dil sürümü oluşturma.

.NET indirmeleri sayfasından en son .NET 9 önizleme SDK'sını indirebilirsiniz. .NET 9 Önizleme SDK'sını içeren Visual Studio 2022 - önizleme sürümünü de indirebilirsiniz.

Yeni özellikler genel önizleme sürümlerinde kullanıma sunulduğunda "C#'daki yenilikler" sayfasına eklenir. Roslyn özellik durumu sayfasının çalışma kümesi bölümü, yaklaşan özelliklerin ana dalda ne zaman birleştirilmesini izler.

Not

Bu özelliklerle ilgili geri bildirimlerinizle ilgileniyoruz. Bu yeni özelliklerden herhangi biriyle ilgili sorunlar bulursanız dotnet/roslyn deposunda yeni bir sorunoluşturun.

Yeni kaçış dizisi

Unicode U+001Bkarakteri için ESCAPE karakter değişmez kaçış dizisi olarak kullanabilirsiniz\e. Daha önce veya \x1bkullandınız\u001b. Aşağıdaki \x1b sonraki karakterler 1b geçerli onaltılık basamaklarsa, bu karakterler kaçış dizisinin bir parçası haline geldiğinden kullanılması önerilmez.

Yöntem grubu doğal türü

Bu özellik, yöntem gruplarını içeren çözümlemeyi aşırı yüklemek için küçük iyileştirmeler yapar. Önceki davranış, derleyicinin bir yöntem grubu için aday yöntemlerin tam kümesini oluşturmasıydı. Doğal bir türe ihtiyaç duyulduysa, doğal tür aday yöntemlerin tam kümesinden belirlendi.

Yeni davranış, her kapsamdaki aday yöntemleri kümesini ayıklamak ve geçerli olmayan aday yöntemlerini kaldırmaktır. Bunlar genellikle yanlış arity veya kısıtlamalarla karşılanmayan genel yöntemlerdir. İşlem, yalnızca hiçbir aday yöntemi bulunamazsa sonraki dış kapsama devam eder. Bu işlem, aşırı yükleme çözümlemesi için genel algoritmayı daha yakından izler. Belirli bir kapsamda bulunan tüm aday yöntemleri eşleşmiyorsa, yöntem grubunun doğal bir türü yoktur.

Teklif belirtimindeki değişikliklerin ayrıntılarını okuyabilirsiniz.

Örtük dizin erişimi

Örtük "sonundan" dizin işlecine artık ^nesne başlatıcı ifadesinde izin verilir. Örneğin, artık aşağıdaki kodda gösterildiği gibi bir nesne başlatıcıda bir dizi başlatabilirsiniz:

var v = new S()
{
    buffer =
    {
        [^1] = 0,
        [^2] = 1,
        [^3] = 2,
        [^4] = 3,
        [^5] = 4,
        [^6] = 5,
        [^7] = 6,
        [^8] = 7,
        [^9] = 8,
        [^10] = 9
    }
};

C# 13'ün önceki sürümlerinde, ^ işleç bir nesne başlatıcıda kullanılamaz. Öğeleri önden dizine almanız gerekir.

Ayrıca bkz.