Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Библиотека классов .NET предоставляет ряд универсальных классов коллекций в пространствах имен System.Collections.Generic и System.Collections.ObjectModel. Дополнительные сведения об этих классах см. в разделе "Часто используемые типы коллекций".
System.Collections.Generic
Многие универсальные типы коллекций являются прямыми аналогами негенерических типов. Dictionary<TKey,TValue> — это универсальная версия Hashtable; она использует универсальную структуру KeyValuePair<TKey,TValue> для перечисления вместо DictionaryEntry.
List<T> — универсальная версия ArrayList. Существуют универсальные классы Queue<T> и Stack<T>, соответствующие негенерическим версиям.
Существуют универсальные и негенерические версии SortedList<TKey,TValue>. Обе версии — это гибриды словаря и списка. Универсальный SortedDictionary<TKey,TValue> класс является чистым словарем и не имеет негенерического аналога.
Универсальный LinkedList<T> класс — это истинный связанный список. Он не имеет негенерного аналога.
System.Collections.ObjectModel
Универсальный Collection<T> класс предоставляет базовый класс для создания собственных универсальных типов коллекций. Класс ReadOnlyCollection<T> предоставляет простой способ создания коллекции только для чтения из любого типа, реализующего универсальный IList<T> интерфейс. Универсальный KeyedCollection<TKey,TItem> класс предоставляет способ хранения объектов, содержащих собственные ключи.
Другие универсальные типы
Универсальная Nullable<T> структура позволяет использовать типы значений, как если бы они могли быть назначены null
. Это может быть полезно при работе с запросами базы данных, где поля, содержащие типы значений, могут быть отсутствуют. Параметр универсального типа может быть любым типом значения.
Замечание
В C# и Visual Basic не обязательно использовать Nullable<T> явно, так как язык имеет синтаксис для типов, допускающих значение NULL. См. типы значений, допускающие значение NULL (справочник по C#) и типы значений, допускающие значение NULL (Visual Basic).
Универсальная ArraySegment<T> структура позволяет определять границы диапазона элементов в массиве любого типа, который одномерен. Параметр универсального типа — это тип элементов массива.
EventHandler<TEventArgs> Универсальный делегат устраняет необходимость объявления типа делегата для обработки событий, если событие следует шаблону обработки событий, используемому .NET. Например, предположим, что вы создали класс, производный MyEventArgs
от EventArgs, для хранения данных для события. Затем можно объявить событие следующим образом:
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)