Udostępnij za pośrednictwem


Interfejsy ogólne na platformie .NET

Ten artykuł zawiera omówienie elementu . Interfejsy ogólne platformy NET, które zapewniają typowe funkcje w różnych rodzinach typów ogólnych.

Interfejsy ogólne zapewniają bezpieczne dla typów odpowiedniki interfejsów niegenerycznych na potrzeby porównywania kolejności i równości oraz funkcjonalności, które są współużytkowane przez typy kolekcji ogólnych. Platforma .NET 7 wprowadza interfejsy ogólne dla typów podobnych do liczb, na przykład System.Numerics.INumber<TSelf>. Te interfejsy umożliwiają definiowanie metod ogólnych, które zapewniają funkcje matematyczne, gdzie parametr typu ogólnego jest ograniczony jako typ implementujący ogólny, liczbowy interfejs.

Uwaga

Parametry typu kilku interfejsów ogólnych są oznaczone kowariantną lub kontrawariantną, zapewniając większą elastyczność przypisywania i używania typów implementujących te interfejsy. Aby uzyskać więcej informacji, zobacz Covariance i Contravariance.

Porównania równości i kolejności

Funkcje kolekcji

  • Interfejs ICollection<T> ogólny to podstawowy interfejs dla typów kolekcji ogólnych. Zapewnia podstawowe funkcje dodawania, usuwania, kopiowania i wyliczania elementów. ICollection<T> dziedziczy zarówno z typów ogólnych IEnumerable<T> , jak i niegenerycznych IEnumerable.

  • Interfejs IList<T> ogólny rozszerza ICollection<T> ogólny interfejs z metodami pobierania indeksowanego.

  • Interfejs IDictionary<TKey,TValue> ogólny rozszerza ICollection<T> ogólny interfejs przy użyciu metod pobierania kluczy. Ogólne typy słowników w bibliotece klas bazowych platformy .NET implementują również interfejs niegenericzny IDictionary .

  • Interfejs IEnumerable<T> ogólny zapewnia ogólną strukturę modułu wyliczającego. Interfejs IEnumerator<T> ogólny implementowany przez moduły wyliczania ogólnego dziedziczy interfejs niegenericzny IEnumerator ; MoveNext elementy członkowskie i Reset , które nie zależą od parametru Ttypu , pojawiają się tylko w przypadku interfejsu niegenericznego. Oznacza to, że każdy użytkownik interfejsu niegenericznego może również korzystać z interfejsu ogólnego.

Funkcje matematyczne

Platforma .NET 7 wprowadza ogólne interfejsy w System.Numerics przestrzeni nazw, które opisują typy podobne do liczb i dostępne dla nich funkcje. 20 typów liczbowych, które udostępnia biblioteka klas bazowych platformy .NET, na przykład Int32 i Double, zostały zaktualizowane w celu zaimplementowania tych interfejsów. Najbardziej widocznym z tych interfejsów jest INumber<TSelf>, który w przybliżeniu odpowiada "rzeczywistej" liczbie.

Aby uzyskać więcej informacji na temat tych interfejsów, zobacz Ogólne obliczenia matematyczne.

Zobacz też