Delen via


Algemene interfaces in .NET

Dit artikel bevat een overzicht van . De algemene interfaces van NET die algemene functionaliteit bieden voor verschillende algemene typen.

Algemene interfaces bieden typeveilige tegenhangers voor niet-genrische interfaces voor het rangschikken en gelijkheidsvergelijkingen, en voor functionaliteit die wordt gedeeld door algemene verzamelingstypen. .NET 7 introduceert algemene interfaces voor numerieke typen, bijvoorbeeld System.Numerics.INumber<TSelf>. Met deze interfaces kunt u algemene methoden definiëren die wiskundige functionaliteit bieden, waarbij de parameter voor het algemene type wordt beperkt tot een type waarmee een algemene, numerieke interface wordt geïmplementeerd.

Notitie

De typeparameters van verschillende algemene interfaces zijn gemarkeerd als covariant of contravariant, wat meer flexibiliteit biedt bij het toewijzen en gebruiken van typen die deze interfaces implementeren. Zie Covariantie en Contravariantie voor meer informatie.

Vergelijkingen van gelijkheid en ordenen

Verzamelingsfunctionaliteit

  • De ICollection<T> algemene interface is de basisinterface voor algemene verzamelingstypen. Het biedt basisfunctionaliteit voor het toevoegen, verwijderen, kopiëren en inventariseren van elementen. ICollection<T> neemt over van zowel algemene IEnumerable<T> als niet-genrische IEnumerable.

  • De IList<T> algemene interface breidt de ICollection<T> algemene interface uit met methoden voor geïndexeerd ophalen.

  • De IDictionary<TKey,TValue> algemene interface breidt de ICollection<T> algemene interface uit met methoden voor sleutel ophalen. Algemene woordenlijsttypen in de .NET-basisklassebibliotheek implementeren ook de niet-generische IDictionary interface.

  • De IEnumerable<T> algemene interface biedt een algemene enumeratorstructuur. De IEnumerator<T> algemene interface die wordt geïmplementeerd door algemene enumerators, neemt de niet-generische IEnumerator interface over; de MoveNext en Reset leden, die niet afhankelijk zijn van de typeparameter T, worden alleen weergegeven op de niet-generische interface. Dit betekent dat elke consument van de niet-generische interface ook de algemene interface kan gebruiken.

Wiskundige functionaliteit

.NET 7 introduceert algemene interfaces in de System.Numerics naamruimte waarin getalachtige typen worden beschreven en de functionaliteit die voor hen beschikbaar is. De 20 numerieke typen die de .NET-basisklassebibliotheek biedt, Int32Doublezijn bijvoorbeeld bijgewerkt om deze interfaces te implementeren. De meest prominente van deze interfaces is INumber<TSelf>, wat ongeveer overeenkomt met een 'reëel' getal.

Zie Algemene wiskunde voor meer informatie over deze interfaces.

Zie ook