Obecné kolekce na platformě .NET
Knihovna tříd .NET poskytuje v oboru System.Collections.GenericSystem.Collections.ObjectModel názvů řadu obecných tříd kolekce. Podrobnější informace o těchto třídách naleznete v tématu Běžně používané typy kolekcí.
System.Collections.Generic
Mnoho obecných typů kolekcí je přímých analogů negenerických typů. Dictionary<TKey,TValue> je obecná verze Hashtable; používá obecnou strukturu KeyValuePair<TKey,TValue> pro výčet místo DictionaryEntry.
List<T>je obecná verze .ArrayList Existují obecné Queue<T> a Stack<T> třídy, které odpovídají negenerické verze.
Existují obecné a negenerické verze SortedList<TKey,TValue>. Obě verze jsou hybridními slovníky a seznamem. Obecná SortedDictionary<TKey,TValue> třída je čistý slovník a nemá žádný negenerický protějšk.
Obecná LinkedList<T> třída je skutečný propojený seznam. Nemá žádný negenerický protějšk.
System.collections.objectmodel
Obecná Collection<T> třída poskytuje základní třídu pro odvození vlastních obecných typů kolekcí. Třída ReadOnlyCollection<T> poskytuje snadný způsob, jak vytvořit kolekci jen pro čtení z libovolného IList<T> typu, který implementuje obecné rozhraní. Obecná KeyedCollection<TKey,TItem> třída poskytuje způsob, jak ukládat objekty, které obsahují vlastní klíče.
Další obecné typy
Obecná Nullable<T> struktura umožňuje používat typy hodnot, jako by mohly být přiřazeny null
. To může být užitečné při práci s databázovými dotazy, kde můžou chybět pole obsahující typy hodnot. Parametr obecného typu může být libovolný typ hodnoty.
Poznámka:
V jazyce C# a Visual Basic není nutné explicitně používat Nullable<T> , protože jazyk má syntaxi pro typy s možnou hodnotou null. Viz typy hodnot s možnou hodnotou Null (referenční dokumentace jazyka C#) a Typy hodnot Nullable (Visual Basic).
Obecná ArraySegment<T> struktura poskytuje způsob, jak oddělovat rozsah prvků v jednorozměrném matici založeném na nule libovolného typu. Parametr obecného typu je typ prvků pole.
Obecný EventHandler<TEventArgs> delegát eliminuje potřebu deklarovat typ delegáta pro zpracování událostí, pokud vaše událost dodržuje model zpracování událostí používaný rozhraním .NET. Předpokládejme například, že jste vytvořili třídu odvozenou MyEventArgs
z EventArgs, pro uložení dat pro vaši událost. Událost pak můžete deklarovat následujícím způsobem:
public:
event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)