Megosztás:


Á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 felületek típusbiztos megfelelői a nem általános felületeknek a rendezési és egyenlőségi összehasonlítások céljára, valamint a generikus gyűjteménytípusok által megosztott funkciókra. 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.

Megjegyzé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 kontravariancia.

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> mind az általános IEnumerable<T>, mind a nemgenerikus IEnumerable örököl.

  • 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; azok a tagok, amelyek nem függnek a MoveNext típusparamétertől, csak a nemgenerikus Reset 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