Обобщенные классы коллекций. NET Framework

net вы реализовывали специальные классы

В. NET 1.1 вы реализовывали специальные классы коллекций, используя класс CollectionBase И лежащий под ним ArrayList. Тут имелись некоторые проблемы, поскольку за кулисами все сохранялось и извлекалось через сырую ссылку Object, Что порождало проблемы с эффективностью, обусловленные упаковкой и распаковкой для типов-значений и приведениями для любых типов. Одним из важнейших нововведений в. NET 2.0 на уровне Framework явились обобщения. Вы уже познакомились с применением обобщений в ряде примеров этой книги, но полное обсуждение обобщений выходит за рамки ее тематики. Тем не менее использование обобщенных классов коллекций является центральным моментом привязки данных в приложениях Windows Forms со специальными рабочими объектами, поскольку обобщенные коллекции решают все проблемы, о которых уже говорилось в этой главе. Когда вы используете обобщенные классы коллекций, вы фактически объявляете сильно типизированный класс коллекции, просто объявляя экземпляр обобщенного класса с параметризованным типом. Рассмотрим, например, следующую строчку кода: Эта строка объявляет элемент-переменную типа List<Customer> И создает экземпляр этого типа. Параметром обобщенного типа является Customer, Который указывает, что должен быть создан новый обобщенный тип List, Содержащий объекты Customer. По синтаксису и семантике обобщения аналогичны шаблонам C++, но реализация их сильно отличается и более эффективна. Это простое объявление эквивалентно по своей функции определению целого класса, подобного показанному в листинге 9.1, но гораздо эффективнее в плане памяти и исполнения. Оно дает вам класс безопасной по типу коллекции для объектов любого рода, просто объявляя новый экземпляр обобщенного типа List<T> С соответствующим параметром типа , Специфицирующим тип объектов, для хранения которых предназначается коллекция.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *