Udostępnij za pośrednictwem


Interfejsy ogólne na platformie .NET

Ten artykuł zawiera omówienie ogólnych interfejsów 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 / Notatka

Parametry typu kilku interfejsów ogólnych są oznaczone jako kowariantne lub kontrawariantne, co zapewnia większą elastyczność w przypisywaniu i używaniu typów, które implementują 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 typu ogólnego IEnumerable<T>, jak i z niegenerycznego IEnumerable.

  • Interfejs IList<T> generyczny rozszerza ICollection<T> generyczny interfejs metodami pobierania za pomocą indeksu.

  • Ogólny interfejs IDictionary<TKey,TValue> rozszerza ogólny interfejs ICollection<T> o metody umożliwiające pobieranie danych za pomocą 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 wyliczacze ogólne dziedziczy interfejs niogólny IEnumerator; elementy członkowskie MoveNext i Reset, które nie zależą od parametru typu T, pojawiają się tylko w interfejsie niogólnym. 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 także