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

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

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

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

Все методы, определенные в классе дггау, автоматически доступны для обработки массивов всех встроенных в С(т типов значений. Но в отношении массивов ссылок иа объекты это правило может и ие соблюдаться. Так, для сортировки массива ссылок иа объекты в классе типа этих объектов должен быть реализован интерфейс 1СоврагаЬ1е или 1СоврагаЬ1е<Т>. Если же ни один из этих интерфейсов ие реализован в данном классе, то во время выполнения программы может возникнуть исключительная ситуация в связи с попыткой отсортировать подобный массив или осуществить в ием поиск. Правда, реализовать оба интерфейса, 1соврагаые и 1СоврагаЬ1е<Т>,совсем нетрудно.

В интерфейсе 1СоврагаЫе определяется один метод: ьпа Соврагето(оп)есг оой) В этом методе зиачеиие вызывающего объекта сравнивается со значением объекта, определяемого параметром оЬОЬ Если значение вызывающего объекта больше, чем у объекта оьз, то возвращается положительное значение; если оба значения равны — нулевое значение, а если значение вызывающего объекта меньше, чем у объекта ОЬ31 — отрицательное значение. Интерфейс 1СоврагаЬ1е<Т> является обобщенным вариантом интерфейса 1СоврагаЬ1е.

Поэтому в ием определен следующий обобщенный вариант метода Соврагето(); 1па Соврагето(т оьй) Обобшеииый вариант метода соврагето () действует аналогично иеобобщеииому его варианту. В ием значение вызывающего объекта также сравнивается со значением объекта, определяемого параметром оЬсЬ Если значение вызывающего объекта больше, чем у объекта ОЬЗЧ то возвращается положительное значение; если оба значения равны — пулевое значение, а если значение вызывающего объекта меньше, чем у объекта ОЬ31 — отрицательиое значение. Преимушество интерфейса 1СоврагаЫе<Т> ЗаключаетСя в тоы, что ои обеспечивает типовую безопасность, поскольку в этом случае тип обрабатываемых данных указывается явным образом, а следовательно, никакого приведения типа оь3 ест сравииваемого объекта к нужному типу ие требуется.

В качестве примера ниже приведена программа, в которой демонстрируются сортировка и поиск в массиве объектов определяемого пользователем класса. О Отсортировать масаив объектов и осувеатвить в нем поиск. пв1пч Яуваевт с1авв МуС1авя: 1соирагаЫе<иус1аяя> ( риЫ1с апя аг рпЫьс МуС1авз(апя х) ( 1 = хг ) // Реализовать интерфейс тссирагаЫе<Мус1аяя>. рпЫас апо Соирагето(муС1аяв и) ( гесотп 1 - п.1г ) рпЫтс Ьоо1 Ег]па1я(Мус1азв и) ( геопгп 1 == п.тг ) с1азв Богзпеио [ язао1с по)б Маап() ( МуС1аяя[] опия = пен МуС1аяв[5]г // Отобразить исходный порядок следования.

Сопво1е.игапе("Исходный порядок следования: ")г гогеась(иус1аяя о ап опия) Сопяо1е.иг1пе(о.а + " ")т Сопво1е.нг1веьтпе()Г // Отсортировать массив. Лггау.эогя (пшпя) г // Отобразить порядок следования после сортировки. Сопяо1е.игьее("Порядок следования после сортировки: ") Еогеасп(Мус1авв о ап опия) Сопзо1е.Игаяе(о. 1 + " ")т Сопво1е Игавет апе () г // Найти объект МуС1аяз(2). МуС1авв х = пен МуС1авз(2)г апс абх = Лггау.В1пагузеагсп(поня, х) Сопяо1е.ИгавеЬ1пе("Индекс элемента массива с объектом МуС1аяя(2): тс)х); При выполнении этой программы получается следующий результат: опия[0) гилля [1] гилля [2] пива[Э] поев[4] пеи МуС1авв(5)г пеи МуС1аяв(2)т пеи МуС1аяв(3)т пен МуС1авз(4)т пен МуС1авв(1)т Глава 21.

Пространство имен Зув(еп) 729 730 Часть и, Библиотека СЗ Исходный порядок следования: 5 2 3 4 1 Порядок следования после сортировки: 1 2 3 4 5 Индекс элемента массива с объектом МуС1азз(2): 1 Обращение содержимого массива Иногда оказывается полезно обратить содержимое массива и, в частности, отсортировать по убывающей массив, отсортированный по нарастающей. Для такого обращеиия массива достаточно вызвать метод печегзе () . С его помощью можно обратить содержимое массива полностью или частично. Этот процесс демонстрируется в приведенной ниже программе.

// Обратить содержимое массива. из1пс Яузкещ) с1азз Вечегзепещо ( зкакас чо1б Маап() ( апк(] пчщз = ( 1, 2, 3, 4, 5 )) // Отобразить исходный порядок следования. Сопзо1е.итаке("Исходный порядок следования. "") Гогеась(1пк 1 ап ппщз) Сопзо1е.ит).ке(1 + " ")т Сопзо1е.нг1кеьтпе()' // Обратить весь массив. Лгкау.кечегзе(ппщз)т // Отобразить обратный порядок следования.

сопзо1е.итаке("Обратный порядок следования: ") Гогеась(тпк 1 1п ппщз) Сопзо1е.итаке (1 + " ") > Сопзо1е.ыгкаесапе()т // Обратить часть массива. Лтгау.аечегзе(пчщз, 1, 3); // Отобразить обратный порядок следования. Сопзо1е.ипате("Частично обращенный порядок следования: ") Гогеась(1пк 1 ап ппщз) Сопзо1е.вг1ке(1 + " "); Сопзо1е.вг1ке11пе()) ) ) Эта программа дает следующий результат: Исходный порядок следования: 1 2 3 4 5 Обратный порядок следования: 5 4 3 2 1 Частично обращенный порядок следования: 5 2 3 4 1 Глава 2). пространство имен Зужеа 731 Копирование массива Полное или частичное копирование одного массива в другой — это еще одна весьма распространенная операция с массивами. Для копирования содержимого массива служит метод сору () . В зависимости от его варианта копирование элементов исходного массива осуществляется в начало или в средину целевого массива.

Применение метода Сору () демонстрируется в приведенном ниже примере программы. // Скопировать массив. иягпд зуягекч с1азя Сорупеюо ( ягаггс чо1б мата() 1пг(] яоигсе = ( 1, 2, 3, 4, 5 ); ).пс(] Гагдес = ( 11, 12, 13, 14, 15 )) гпг(] яоигсе2 = ( -1, -2, -3, -4, -5 )т // Отобразить исходный массив. Сопзо1е.нгтсе("Исходный массив: ")) Гогеась(1пс г гп яоигсе) Сопзо1е.нг).се(). ь " ")т Сопзо1е.иггсепгпе()т // Отобразить исходное содержимое целевого массива. Сопяо1е.иггсе("Исходное содержимое целевого массива: ")) Гогеась(тпс г гп Гагдес) Сопяо1е.иггсе(1 + " ")т Сопяо1е .Иггсеьгпе () т // Скопировать весь массив.

Аггау.Сору(яоигсе, Гагдес, яоигсе.ьепдсп) // Отобразить копию. Сопяо1е.иггге("Целевой массив после копирования: ")т Гогеасп(1пс 1 гп Гагдес) Сопяо1е.иггсе(г Ь " ")т Сопяо1е.иг1сеь1пе()) // Скопировать в средину целевого массива. Аггау.Сору(яоигсе2, 2, Гагдес, 3, 2)) // Отобразить копию.

Сопяо1е.нг1се("Целевой массив после частичного копирования: ")~ Гогеасн(гпс г 1п Гагдес) Сопяо1е .Иг1се (1 + " ") т Сопяо1е.иггсецвпе П ! ) Выполнение этой программы дает следующий результат: 732 Часть П, Библиотека Сз Исходный массив: 1 2 3 4 5 Исходное содержимое целевого массива: 11 12 13 14 15 Целевой массив после копирования: 1 2 3 4 5 Целевой массив после частичного копирования: 1 2 3 -3 -4 Применение предиката Предихат представляет собой делегат типа Зуяеещ. Ргес)1сате, возвращающий логическое значение Сгие или Га1яе в зависимости от некоторого условия.

Ои объявляется следующим образом: рив11с ае1ечаке Ьоо1 Ргес)тсяке<т> (т сод) Объект, проверяемый по заданному условию, передается в качестве параметра оЬУ. Если объект оЬ3 удовлетворяет заданному условию, то предикат должен возвратить логическое значение Сгие, в противном случае — логическое значение Га1яе. Предикаты используются в ряде методов класса Актау, включая: ЕхъзСя(), Гъпа(), Гъпд1пдех () и Гз.пс(й11 () . В приведенном ниже примере программы демонстрируется применение предиката с целью определить, содержится ли в целочисленном массиве отрицательное значение. Если такое значение обнаруживается, то данная программа извлекает первое отрицательное значение, найденное в массиве. Для этого в ией используются методы ехъя с я () и Г).пс(() .

// Продемонстрировать применение предикатного делегата. иятпч яуякещ! с1аяя Ргес)пежо ( // Предикатный метод, возвращающий логическое значение // сгие, если значение ч отрицательное. якак1с Ьоо1 1янес(ъпк ч) ( 11(ч < О) гесисп сгие! гекигп Га1яе! ) якакьс чо!.с( Ма(п () ( 1пк() пище = ( 1, 4, -1, 5, -9 )! Сопяо1е.иггке (" Содержимое массива пища: ") ! гогеасп(тпк 1 тп пища) Сопао1е.иг1се(1 + " ")! Сопяо1е.игткеъьпе()! // Сначала проверить, содержит ли массив пища // отрицательное значение.

11(лггау.Ех1якз(пища, Ргес(пежо.1яиед)) Сопяо1е.игткеътпе("Массив пища содержит отрицательное значение."); // Затем найти первое отрицательное значение // в массиве. тпк х = Актау.Гтпа(пища, Ргеипещо.1яиед)! Сопяо1е.игъкеътпе("Первое отрицательное значение: " ь х)! Глава 2(. Пространство имен Зув(ещ 733 е1яе сопяо1е.нг1сеъвпе("В массиве ппщя отсутствуют " ь "отрицательные значения.")т Эта программа дает следующий результат: Содержимое массива пцщя: 1 4 -1 5 -9 Массив пцщв содержит отрицательное значение.

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

Тип файла
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 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее