Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 167

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 167 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 1672019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 167)

То, что в программировании иа С++ называется контейнером, в программироваиии иа С№ называется ноллвлзкивй. Это же относится и к ~ача. Если вы знакомы с библиотекой Сойесйопз Егагпеччогх для ~ача, то научиться пользоваться коллекциями в С№ ие составит для вас большого труда. 1лааа 24.

Коллекции, перечислителн н итератори 839 В силу характерных отличий каждый нз четырех типов коллекций (необобщенных, обобщенных, специальных и с поразрядной организацией) будет рассмотрен далее в этой главе отдельно. Необобщенные коллекции Интерфейсы необобщенных коллекций В пространстве имен е узкою. Со11ессъопэ определен целый ряд интерфейсов необобщенных коллекций. Но начать их рассмотрение следует с интерфейсов коллекций, поскольку они определяют функциональные возможности, которые являются общими для нсех классов необобщенных коллекций. Интерфейсы, служащие опорой для необобщенных коллекций, сведены в табл.

24.1. Каждый из этих интерфейсов подробно описывается далее. Таблица 24.1. Интерфейсы необобщениых коллекций Описание Интерфейс 1Со11еск1он Определяет элементы, которые должны иметь все необобщенные коллекции 1Соирагег Определяет метод соираге () для сравнения объектов, хранящихся в коллекции 1пъссгопагу 1вьск1онагуЕпсиегаког Определяет коллекцию, состоящую из пар "ключ — значение" Определяет перечислитель для коллекции, реализующей интерфейс 1аъск1онагу 1Епииегаъге Определяет метод аегенииегагог (), предоставляющий перечисли- тель для любого класса коллекции 1Енижегагог Предоставляет методы, позволяющие получать содержимое коллек- ции по очереди 1ЕЧиа1(сусоирагег 1яазПСоееРготгдег Сравнивает два объекта на предмет равенства Считается устаревшим.

Вместо него следует использовать интер- фэйо 1ЕЧна11сусоирагег 1възк Определяет коллекцию, доступ к которой можно получить с помощью индексатора Необобщенные коллекции вошли в состав среды .ХЕТ Егашешог)( еще в версии 1.0. Они определяются в пространстве имен Еуэсею. Со11ессвопэ. Необобщенные коллекции представляют собой структуры данных общего назначения, оперирующие ссылками на объекты.

Таким образом, они позволяют манипулировать объектом любого типа, хотя и не типизированным способом. В этом состоит их преимущество и в то же время недостаток. Благодаря тому что необобщенные коллекции оперируют ссылками на объекты, в них можно хранить разнотипные данные. Это удобно в тех случаях, когда требуется манипулировать совокупностью разнотипных объектов или же когда типы хранящихся в коллекции объектов заранее неизвестны. Но если коллекция предназначается для хранения,объекта конкретного типа, то необобщенные коллекции не обеспечивают типовую безопасность, которую можно обнаружить в обобщенных коллекциях.

Необобщенные коллекции определены в ряде интерфейсов и классов, реализующих эти интерфейсы. Все они рассматриваются далее по порядку. 840 Часть )). Библиотека С№ Интерфейс 1Со11есйдоп Интерфейс 1Со11есс1оп служит основанием, на котором построены все необобщенные коллекции. В нем объявляются основные методы и свойства для всех необобщенных коллекций. Он также наследует от интерфейса 1ЕппвегаЫе. В интерфейсе 1Со11есг1оп определяются перечисленные ниже свойства.

Свойство Назначение 1пс сопле ( песк ) Содержит количество элементов а коллекции на данный момент Ьоо1 1ззупсьгопагео ( Яесг ) Принимает логическое значение ггпе, если коллекция синхронизирована, иначе — логическое значение га1зе. По умолчанию коллекции не синхронизированы. Но для большинства коллекций можно получить синхронизированный вариант оьбесг яупсноог ( оегг ) Содержит объект, дпя которого коллекция может быть син- хронизирована Свойство Сопле используется чаще всего, поскольку оно содержит количество элементов, хранящихся в коллекции на данный момент.

Если значение свойства соппг равно нулю, то коллекция считается пустой. В интерфейсе 1Со11ессаоп определяется следующий метод: хогЙ соруто(хггау гагдес, гпс зсагсгг)х) Метод спрута () копирует содержимое коллекции в массив гадес, начиная с элемента, указываемого по индексу зсагсгс)х. Следовательно, метод соруто() обеспечивает в С№ переход от коллекции к стандартному массиву.

Благодаря тому что интерфейс 1со11есг1оп наследует от интерфейса 1епивегаь1е, в его состав входит также единственный метод, определенный в интерфейсе 1Еппве гаЫе. Это метод БеСЕппвегаког (), объявляемый следующим образом: 1Епшлегасог СеГЕппвегасог() Он возвращает перечислитель для коллекции. Вследствие того же наследования от интерфейса 1ЕппвегаЫе в интерфейсе 1со11есс1оп определяются также три следующих метода расширения: )ьзцпегуаые (), СаяТ () и ОТТуре () . В частности, метод АзОпегуаЫе () объявляется в классе Бузгев. Е1пс(. ОпегуаЫе, а методы СаяТ () и ОТТуре () — в классе Бузгев.

Е1пг).ЕппвегаЫе. Эти методы предназначены главным образом для поддержки ) 1)ЧО, хотя их можно применять и в других целях. Интерфейс 1Ьде С В интерфейсе 1Ь1зс объявляется такое поведение необобщенной коллекции, которое позволяет осуществлять доступ к ее элементам по индексу с отсчетом от нуля. Этот интерфейс наследует от интерфейсов 1Со11есс1оп и 1ЕппвегаЫе.

Помимо методов, определенных в этих интерфейсах, в интерфейсе 111зг определяется ряд собственных методов. Все эти методы сведены в табл. 24.2. В некоторых из них предусматривается модификация коллекции. Если же коллекция доступна только для чтения илн имеет фиксированный размер, то в этих методах генерируется исключение ногзпрроггег)ехсерг1оп. Глава 24. Коллекции, перечислители и итераторн 841 Таблица 24.2. Методы, определенные е интерфейсе ХЬхвв Метод Описание ьпС йс(с)(оь)есг оЬУ) Добавляет объект оьу в вызывающую коллекцию. Возвращает индекс, по которому этот объект сохра- няется нося С1еег () Ьоо1 Сопгаспя(оьзесг оЬУ) Удаляет все элементы из вызывающей коллекции Возвращает логическое значение сгпе, если вызы- вающая коллекция содержит объект оь11 иначе — ло- гическое значение ге1яе гпг 1поехОГ(оь)есг оЬУ) Возвращает индекс объекта оьу, если этот объект со- держится а вызывающей коллекции.

Если же объект оьт не обнаружен, то метод возвращает значение -1 нога 1пяегг(ьпг 1с(х, оьзесг оЬУ) Вставляет в вызывающую коллекцию объект ЬЬУ по индекеу хс(х. Зпемеиты, находившиеся до этого по ин- де)ссу 1с(х и дальше, смещаются вперед, чтобы осво- бодить место дпя вставляемого объекта оьу нога неионе(оьйесс сьй) Удаляет первое вхождение объекта оьу в вызывающей коллекции. Злементы, находившиеся до этого эа уда- ленным элементом, смещаются назад, чтобы устра- нить образовавшийся "пробел" нога аееснейг (спг хых) Удаляет из вызывающей коллекции объект, рас- положенный по указанному индексу 1с(х. Элементы, находившиеся до этого за удаленным элементом, смещаются назад, чтобы устранить образовавшийся "пробел" Ьоо1 1ят1хеяясае ( дегк ) ЬОО1 1ЯНЕЕСЮП1У ( СЕС1 ) Если коллекция имеет фиксированный размер, то свойство 1я УЬхес(В1хе содержит логическое значение сгце.

Это означает, что в такую коллекцию нельзя ни вставлять элементы, ни удалять их из нее. Если же коллекция доступна только для чтения, то свойство 1яиеас(Оп1у содержит логическое значение Сгпе. Это означает, что содержимое такой коллекции не подлежит изменению. Кроме того, в интерфейсе 1ВЕяС определяется следующий индексатор: оьйесс сьья(гпс хс(х) ( песк яес; ) Объекты добавляются в коллекцию типа 1 11 я с путем вызова метода йс(с( ( ) .

Обратите внимание на то, что метод йсы () принимает аргумент типа оьб еос. А поскольку оьч есс является базовым классом для всех типов, то в необобщенной коллекции может быть сохранен объект любого типа, включая и типы значений, в силу автоматической упаковки и распаковки. Для удаления элемента из коллекции служат методы иеюоне () и иеюонейс () . В частности, метод иеюоне О удаляет указанный объект, а метод Вепонейс () удаляет объект по указанному индексу.

И для опорожнения коллекции вызывается метод В1еег (), Для того чтобы выяснить, содержится ли в коллекции конкретный объект, вызывается метод Вопса1пя () . Для получения индекса объекта вызывается метод 1пс(ех01 (), а для вставки элемента в коллекцию по указанному индексу — метод 1пяегг () . В интерфейсе 1Ь1яС определяются следующие свойства: 842 Часть П. Библиотека СЗ Этот индексатор служит для получения и установки зиачения элемента коллекции. Но его иельзя использовать для добавления в коллекцию нового элемента. С этой целью обычно вызывается метод дс(б () .

Характеристики

Тип файла
DJVU-файл
Размер
6,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6543
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее