Megosztás a következőn keresztül:


Általános felületek a .NET-ben

Ez a cikk áttekintést nyújt a . A NET általános felületei, amelyek általános típusok családjainak általános funkcióit biztosítják.

Az általános adapterek típusbiztos megfelelői a nemgenerikus felületeknek a rendezési és egyenlőségi összehasonlításokhoz, valamint az általános gyűjteménytípusok által megosztott funkciókhoz. A .NET 7 általános felületeket vezet be például a számszerű típusokhoz System.Numerics.INumber<TSelf>. Ezek az interfészek lehetővé teszik a matematikai funkciókat biztosító általános módszerek meghatározását, ahol az általános típusparaméter egy általános numerikus interfészt megvalósító típusnak van korlátozva.

Feljegyzés

Számos általános interfész típusparaméterei kovariant vagy contravariant jelöléssel vannak eladva, így nagyobb rugalmasságot biztosítanak az ezen interfészeket implementáló típusok hozzárendelésében és használatában. További információ: Kovariancia és Contravariance.

Egyenlőség és rendezési összehasonlítások

Gyűjteményfunkciók

  • Az ICollection<T> általános felület az általános gyűjteménytípusok alapszintű felülete. Alapvető funkciókat biztosít az elemek hozzáadásához, eltávolításához, másolásához és számbavételéhez. ICollection<T> örökli mind az általános IEnumerable<T> , mind a nemgenerikus IEnumerable.

  • Az IList<T> általános felület kibővíti az általános felületet az ICollection<T> indexelt lekérés módszereivel.

  • Az IDictionary<TKey,TValue> általános felület kibővíti az ICollection<T> általános felületet a kulcsos lekérés módszereivel. A .NET alaposztálytár általános szótártípusai a nemgenerikus IDictionary felületet is implementálják.

  • Az IEnumerable<T> általános felület általános enumerátorstruktúrát biztosít. Az IEnumerator<T> általános enumerátorok által implementált általános felület örökli a nemgenerikus IEnumerator felületet; a MoveNext típusparamétertől Tnem függő tagok csak Reset a nemgenerikus felületen jelennek meg. Ez azt jelenti, hogy a nemgenerikus felület bármely felhasználója használhatja az általános felületet is.

Matematikai funkciók

A .NET 7 általános interfészeket vezet be a System.Numerics névtérben, amelyek számszerű típusokat és a számukra elérhető funkciókat írják le. A .NET alaposztálykódtár által biztosított 20 numerikus típust frissítettük például Int32Doubleaz interfészek implementálásához. Ezek közül az interfészek közül a legszembetűnőbb az INumber<TSelf>, amely nagyjából egy "valós" számnak felel meg.

További információ ezekről a felületekről: Általános matematika.

Lásd még