.NET'te genel arabirimler
Bu makalede genel bir bakış sağlanır. NET'in genel tür aileleri arasında ortak işlevler sağlayan genel arabirimleri.
Genel arabirimler, sıralama ve eşitlik karşılaştırmaları için ve genel koleksiyon türleri tarafından paylaşılan işlevler için genel olmayan arabirimlere tür açısından güvenli karşılıklar sağlar. .NET 7, sayı benzeri türler için genel arabirimler sunar. Örneğin, System.Numerics.INumber<TSelf>. Bu arabirimler, genel tür parametresinin genel, sayısal arabirim uygulayan bir tür olacak şekilde kısıtlandığı matematiksel işlevler sağlayan genel yöntemler tanımlamanıza olanak sağlar.
Not
Çeşitli genel arabirimlerin tür parametreleri birlikte değişken veya değişken karşıtı olarak işaretlenir ve bu arabirimleri uygulayan türleri atama ve kullanma konusunda daha fazla esneklik sağlar. Daha fazla bilgi için bkz . Kovaryans ve Contravariance.
Eşitlik ve sıralama karşılaştırmaları
System Ad alanında, System.IComparable<T> ve System.IEquatable<T> genel arabirimleri, örneğin kendi üretsel olmayan karşılıkları, sırasıyla karşılaştırmaları ve eşitlik karşılaştırmalarını sıralama yöntemlerini tanımlar. Türler, bu tür karşılaştırmalar gerçekleştirme olanağı sağlamak için bu arabirimleri uygular.
System.Collections.Generic ad alanında ve IEqualityComparer<T> genel arabirimleri, IComparer<T> veya System.IEquatable<T> arabirimini uygulamayan türler için bir sıralama veya eşitlik karşılaştırması System.IComparable<T> tanımlamanın bir yolunu sunar. Ayrıca, bunu yapan türler için bu ilişkileri yeniden tanımlamak için bir yol sağlar.
Bu arabirimler, genel koleksiyon sınıflarının birçoğunun yöntemleri ve oluşturucuları tarafından kullanılır. Örneğin, genel IComparer<T>System.IComparable<T>uygulanmayan bir tür için sıralama düzeni belirtmek üzere sınıfının oluşturucusunun SortedDictionary<TKey,TValue> genel bir nesnesini geçirebilirsiniz. Genel statik yöntemin Array.Sort ve genel uygulamaları kullanarak dizileri ve List<T>.Sort listeleri sıralamak için örnek yönteminin IComparer<T> aşırı yüklemeleri vardır.
Comparer<T> ve EqualityComparer<T> genel sınıfları, ve IEqualityComparer<T> genel arabirimlerinin IComparer<T> uygulamaları için temel sınıflar sağlar ve ayrıca ilgili Comparer<T>.Default ve özellikleri aracılığıyla varsayılan sıralama ve EqualityComparer<T>.Default eşitlik karşılaştırmaları sağlar.
Koleksiyon işlevi
Genel ICollection<T> arabirim, genel koleksiyon türleri için temel arabirimdir. Öğeleri eklemek, kaldırmak, kopyalamak ve numaralandırmak için temel işlevler sağlar. ICollection<T> hem genel IEnumerable<T> hem de genel IEnumerableolmayan öğesinden devralır.
Genel arabirim, IList<T> genel arabirimi dizine alınan alma yöntemleriyle genişletir ICollection<T> .
Genel IDictionary<TKey,TValue> arabirim, anahtarlı alma yöntemleriyle genel arabirimi genişletir ICollection<T> . .NET temel sınıf kitaplığındaki genel sözlük türleri de genel IDictionary olmayan arabirimi uygular.
Genel IEnumerable<T> arabirim genel bir numaralandırıcı yapısı sağlar. Genel IEnumerator<T> numaralandırıcılar tarafından uygulanan genel arabirim, genel IEnumerator olmayan arabirimi devralır; MoveNext tür parametresine
T
bağımlı olmayan ve Reset üyeleri yalnızca üretilmeyen arabirimde görünür. Bu, genel olmayan arabirimin herhangi bir tüketicisinin de genel arabirimi kullanabileceği anlamına gelir.
Matematiksel işlevsellik
.NET 7, ad alanında System.Numerics sayı benzeri türleri ve bunlara sağlanan işlevleri açıklayan genel arabirimler sunar. .NET temel sınıf kitaplığının sağladığı 20 sayısal tür, örneğin Int32 ve Doublebu arabirimleri uygulayacak şekilde güncelleştirildi. Bu arabirimlerin en göze çarpanı kabaca "gerçek" bir sayıya karşılık gelen 'dir INumber<TSelf>.
Bu arabirimler hakkında daha fazla bilgi için bkz . Genel matematik.