Freigeben über


Generische Schnittstellen in .NET

Dieser Artikel bietet einen Überblick über die generischen Schnittstellen von .NET, die allgemeine Funktionen für Familien generischer Typen bereitstellen.

Generische Schnittstellen bieten typsichere Gegenstücke zu nichtgenerischen Schnittstellen für Sortierungs- und Gleichheitsvergleiche sowie für Funktionen, die von generischen Sammlungstypen gemeinsam verwendet werden. .NET 7 führt generische Schnittstellen für zahlenähnliche Typen ein, z. B. System.Numerics.INumber<TSelf>. Mit diesen Schnittstellen können Sie generische Methoden definieren, die mathematische Funktionen bereitstellen, wobei der generische Typparameter auf einen Typ beschränkt ist, der eine generische, numerische Schnittstelle implementiert.

Hinweis

Die Typparameter mehrerer generischer Schnittstellen sind als kovariant oder kontravariant gekennzeichnet und bieten eine größere Flexibilität beim Zuweisen und Verwenden von Typen, die diese Schnittstellen implementieren. Weitere Informationen finden Sie unter "Kovarianz" und "Contravariance".

Gleichheits- und Sortierungsvergleiche

Sammlungsfunktionalität

  • Die ICollection<T> generische Schnittstelle ist die grundlegende Schnittstelle für generische Sammlungstypen. Es bietet grundlegende Funktionen zum Hinzufügen, Entfernen, Kopieren und Aufzählen von Elementen. ICollection<T> erbt von generischen IEnumerable<T> und nichtgenerischen IEnumerable.

  • Die IList<T> generische Schnittstelle erweitert die ICollection<T> generische Schnittstelle mit Methoden für den indizierten Abruf.

  • Die IDictionary<TKey,TValue> generische Schnittstelle erweitert die ICollection<T> generische Schnittstelle um Methoden für den schlüsselbasierten Zugriff. Generische Wörterbuchtypen in der .NET-Basisklassenbibliothek implementieren auch die nichtgenerische IDictionary Schnittstelle.

  • Die IEnumerable<T> generische Schnittstelle stellt eine generische Enumerationsstruktur bereit. Die IEnumerator<T> generische Schnittstelle, die von generischen Enumeratoren implementiert wird, erbt die nichtgenerische IEnumerator Schnittstelle; die MoveNext und Reset Mitglieder, die nicht vom Typparameter T abhängen, erscheinen nur in der nichtgenerischen Schnittstelle. Dies bedeutet, dass jeder Verbraucher der nichtgenerischen Schnittstelle auch die generische Schnittstelle nutzen kann.

Mathematische Funktionalität

.NET 7 führt generische Schnittstellen in den System.Numerics Namespace ein, die nummernähnliche Typen und die ihnen zur Verfügung stehenden Funktionen beschreiben. Die 20 numerischen Typen, die die .NET-Basisklassenbibliothek bereitstellt, wie beispielsweise Int32 und Double, wurden aktualisiert, um diese Schnittstellen zu implementieren. Die auffälligste dieser Schnittstellen ist INumber<TSelf>, was ungefähr einer "realen" Zahl entspricht.

Weitere Informationen zu diesen Schnittstellen finden Sie unter Generische Mathematik.

Siehe auch