C++ Şablonları ve C# Genel Türleri Arasındaki Farklar (C# Programlama Kılavuzu)
C# Genel Türler ve C++ şablonlarının her ikisi de parametreli türler için destek sağlayan dil özellikleridir. Ancak ikisi arasında birçok fark vardır. Söz dizimi düzeyinde C# genel türleri, C++ şablonlarının karmaşıklığı olmadan parametreli türler için daha basit bir yaklaşımdır. Buna ek olarak, C# C++ şablonlarının sağladığı tüm işlevleri sağlamaya çalışmaz. Uygulama düzeyinde birincil fark, C# genel tür değiştirmelerinin çalışma zamanında gerçekleştirilmesi ve genel tür bilgilerinin örneklenen nesneler için korunmasıdır. Daha fazla bilgi için bkz . Çalışma Zamanında Genel Değerler.
C# Genel Türleri ile C++ şablonları arasındaki temel farklar şunlardır:
C# genel türleri C++ şablonlarıyla aynı miktarda esneklik sağlamaz. Örneğin, kullanıcı tanımlı işleçleri çağırmak mümkün olsa da C# genel sınıfında aritmetik işleçleri çağırmak mümkün değildir.
C# gibi
template C<int i> {}
tür olmayan şablon parametrelerine izin vermez.C# açık özelleştirmeyi desteklemez; diğer bir ifadeyle, belirli bir tür için özel bir şablon uygulamasıdır.
C# kısmi özelleştirmeyi desteklemez: tür bağımsız değişkenlerinin bir alt kümesi için özel bir uygulama.
C# tür parametresinin genel tür için temel sınıf olarak kullanılmasına izin vermez.
C# tür parametrelerinin varsayılan türlere sahip olmasını sağlamaz.
C# dilinde, genel tür parametresinin kendisi genel olamaz, ancak yapılı türler genel türler olarak kullanılabilir. C++ şablon parametrelerine izin verir.
C++, şablondaki tüm tür parametreleri için geçerli olmayabilecek koda izin verir ve daha sonra tür parametresi olarak kullanılan belirli tür için denetlenür. C# bir sınıftaki kodun, kısıtlamaları karşılayan herhangi bir türle çalışacak şekilde yazılması gerekir. Örneğin, C++ dilinde aritmetik işleçleri
+
kullanan bir işlev yazmak ve-
tür parametresinin nesnelerine yazmak mümkündür. Bu işlev, şablonun örneği oluşturulurken bu işleçleri desteklemeyen bir türle hata oluşturur. C# buna izin vermemektedir; izin verilen tek dil yapıları, kısıtlamalardan çıkarılabilenlerdir.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin