Általános gyűjtemények a .NET-ben
A .NET-osztálytár számos általános gyűjteményosztályt biztosít a névterekben és System.Collections.ObjectModel a System.Collections.Generic névterekben. Az osztályokkal kapcsolatos részletesebb információkért lásd a gyakran használt gyűjteménytípusok című témakört.
System.Collections.Generic
Az általános gyűjteménytípusok közül sok a nemgenerikus típusok közvetlen analógjai. Dictionary<TKey,TValue> a < a0 Hashtable/> általános verziója; az általános struktúrát KeyValuePair<TKey,TValue> használja az enumeráláshoz ahelyett DictionaryEntry, hogy a .
List<T> A
A általános és nemgenerikus verziói is léteznek SortedList<TKey,TValue>. Mindkét verzió egy szótár és egy lista hibrid változata. Az SortedDictionary<TKey,TValue> általános osztály egy tiszta szótár, és nincs nemgenerikus megfelelője.
Az LinkedList<T> általános osztály egy igaz csatolt lista. Nincs nemgenerikus megfelelője.
System.Collections.ObjectModel
Az Collection<T> általános osztály egy alaposztályt biztosít a saját általános gyűjteménytípusok származtatásához. Az ReadOnlyCollection<T> osztály egyszerű módot kínál arra, hogy írásvédett gyűjteményt állítson elő bármilyen olyan típusból, amely megvalósítja az IList<T> általános felületet. Az KeyedCollection<TKey,TItem> általános osztály lehetővé teszi a saját kulcsokat tartalmazó objektumok tárolását.
Egyéb általános típusok
Az Nullable<T> általános struktúra lehetővé teszi, hogy az értéktípusokat úgy használja, mintha hozzájuk lehetne rendelni null
őket. Ez hasznos lehet adatbázis-lekérdezések használatakor, ahol az értéktípusokat tartalmazó mezők hiányoznak. Az általános típusparaméter bármilyen értéktípus lehet.
Feljegyzés
A C# és a Visual Basic esetében nem szükséges explicit módon használni Nullable<T> , mert a nyelv szintaxisa null értékű típusokhoz tartozik. Lásd: Null értékű típusok (C#-referencia) és Nullható értéktípusok (Visual Basic).
Az ArraySegment<T> általános struktúra lehetővé teszi, hogy egy tetszőleges típusú, egydimenziós, nulla alapú tömbön belül elhatárolja az elemek tartományát. Az általános típusparaméter a tömb elemeinek típusa.
Az EventHandler<TEventArgs> általános meghatalmazott nem szükséges deklarálnia egy delegálttípust az események kezeléséhez, ha az esemény a .NET által használt eseménykezelési mintát követi. Tegyük fel például, hogy létrehozott egy MyEventArgs
osztályt, amelyből EventArgsszármaztatva tárolja az esemény adatait. Ezután a következőképpen deklarálhatja az eseményt:
public:
event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)