Share via


Allmänna gränssnitt i .NET

Den här artikeln innehåller en översikt över . NET:s allmänna gränssnitt som tillhandahåller vanliga funktioner i familjer av generiska typer.

Allmänna gränssnitt ger typsäkra motsvarigheter till icke-generiska gränssnitt för beställnings- och likhetsjämförelser och för funktioner som delas av generiska samlingstyper. .NET 7 introducerar allmänna gränssnitt för talliknande typer, till exempel System.Numerics.INumber<TSelf>. Med de här gränssnitten kan du definiera generiska metoder som tillhandahåller matematiska funktioner, där den generiska typparametern är begränsad till en typ som implementerar ett generiskt, numeriskt gränssnitt.

Kommentar

Typparametrarna för flera generiska gränssnitt är markerade som covarianta eller kontravarianta, vilket ger större flexibilitet när det gäller att tilldela och använda typer som implementerar dessa gränssnitt. Mer information finns i Covariance och Contravariance.

Likhets- och ordningsjämförelser

Samlingsfunktioner

  • Det ICollection<T> allmänna gränssnittet är det grundläggande gränssnittet för generiska samlingstyper. Den innehåller grundläggande funktioner för att lägga till, ta bort, kopiera och räkna upp element. ICollection<T> ärver från både generiska IEnumerable<T> och icke-generiska IEnumerable.

  • Det IList<T> generiska gränssnittet utökar det ICollection<T> allmänna gränssnittet med metoder för indexerad hämtning.

  • Det IDictionary<TKey,TValue> generiska gränssnittet utökar det ICollection<T> generiska gränssnittet med metoder för nyckelbaserad hämtning. Generiska ordlistetyper i .NET-basklassbiblioteket implementerar också det icke-generiska IDictionary gränssnittet.

  • Det IEnumerable<T> allmänna gränssnittet har en allmän uppräkningsstruktur. Det IEnumerator<T> generiska gränssnittet som implementeras av generiska uppräknare ärver det icke-generiska IEnumerator gränssnittet. MoveNext Medlemmarna och Reset , som inte är beroende av typparametern T, visas endast i det icke-generiska gränssnittet. Det innebär att alla användare av det icke-generiska gränssnittet också kan använda det allmänna gränssnittet.

Matematiska funktioner

.NET 7 introducerar allmänna gränssnitt i namnområdet System.Numerics som beskriver sifferliknande typer och de funktioner som är tillgängliga för dem. De 20 numeriska typerna som .NET-basklassbiblioteket tillhandahåller, Int32 till exempel och Double, har uppdaterats för att implementera dessa gränssnitt. Den mest framträdande av dessa gränssnitt är INumber<TSelf>, vilket ungefär motsvarar ett "verkligt" tal.

Mer information om dessa gränssnitt finns i Allmän matematik.

Se även