Obecná rozhraní v .NET

Tento článek obsahuje přehled . Obecná rozhraní NET, která poskytují společné funkce napříč rodinami obecných typů.

Obecná rozhraní poskytují typově bezpečné protějšky pro negenerická rozhraní pro řazení a porovnávání rovnosti a pro funkce, které jsou sdíleny obecnými typy kolekcí. .NET 7 zavádí obecná rozhraní pro typy podobné číslům, System.Numerics.INumber<TSelf>například . Tato rozhraní umožňují definovat obecné metody, které poskytují matematické funkce, kde je parametr obecného typu omezen na typ, který implementuje obecné číselné rozhraní.

Poznámka:

Parametry typu několika obecných rozhraní jsou označeny kovariantní nebo kontravariantní, což poskytuje větší flexibilitu při přiřazování a používání typů, které implementují tato rozhraní. Další informace naleznete v tématu Kovariance a Kontravariance.

Porovnání rovnosti a řazení

Funkce kolekce

  • Obecné ICollection<T> rozhraní je základní rozhraní pro obecné typy kolekcí. Poskytuje základní funkce pro přidávání, odebírání, kopírování a výčet prvků. ICollection<T> dědí z obecného IEnumerable<T> i negenerického IEnumerable.

  • Obecné IList<T> rozhraní rozšiřuje ICollection<T> obecné rozhraní o metody indexovaného načtení.

  • Obecné IDictionary<TKey,TValue> rozhraní rozšiřuje ICollection<T> obecné rozhraní o metody pro načtení klíče. Obecné typy slovníků v knihovně základních tříd .NET také implementují negenerické IDictionary rozhraní.

  • Obecné IEnumerable<T> rozhraní poskytuje obecnou strukturu enumerátoru. Obecné IEnumerator<T> rozhraní implementované obecnými enumerátory dědí negenerické rozhraní; MoveNext členyReset, které nezávisí na parametru Ttypu , se zobrazují pouze na negenerickém IEnumerator rozhraní. To znamená, že jakýkoli příjemce negenerického rozhraní může také využívat obecné rozhraní.

Matematické funkce

.NET 7 zavádí obecná rozhraní v System.Numerics oboru názvů, které popisují typy podobné číslům a funkce, které jsou pro ně k dispozici. 20 číselných typů, které knihovna základních tříd .NET poskytuje, například a Doublebyly aktualizovány tak, Int32 aby implementovaly tato rozhraní. Nejvýraznější z těchto rozhraní je INumber<TSelf>, což zhruba odpovídá "skutečnému" číslu.

Další informace o těchto rozhraních najdete v tématu Obecná matematika.

Viz také