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

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

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

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

Сонпкпонп сб1 = пеи Соппкпонп(10)т кпс 1т с(о ( 1 = сб1. Сопок () т Сопво1е.нг1ке(1 + " ")) ) нв11е (1 > О) т Сопзо1е.Игасеьапе(); Сонпспонп сс(2 = пен Соипкпонп(20)т с(о ( сс(2.сопок () т Сопво1е.Итаке(1 т " ")) ) нв11е(). > 0)т Сопзо1е.Игасеьапе(); сб2.певек(4)т бо ( 1 = сб2.сопок(); Сопзо1е.ит1ке(1 + " "]; ) нб11е (1 > О) т Сопзо1е.иг1кеьапе(); ) В эту версию программы внесены два существенных изменения. Первое из них состоит в применении директивы пз1пст в самом нас)але программы: изапд соппсетт Благодаря этому становится видимым пространство имен соипсег. Второе изменение состоит в том, что класс СоппСОоип больше не нужно дополнительно определять с помощью пространства имен Соипсег, как демонстрирует приведенная ниже строка кода из метода Ма).п () . Соппкпоип об1 = лен Соппкпоип(10) Теперь пространство имен сопл сед становится видимым, и поэтому класс сопп СОоип может быть использован непосредственно.

Рассматриваемая здесь программа иллюстрирует еще одно важное обстоятельство: применение одного пространства имен не отменяет действие другого. Когда пространство имен делается видимым, это просто дает возможность использовать его содержимое без дополнительного определения имен. Следовательно, в данном примере оба пространства имен, я узгелт и Соппгег, становятся видимыми. 602 Часть (.

Язык С() Вторая форма директивы извод Вторая форма директивы св1ПЯ позволяет определить еще одно имя (так называемый псевдоним) типа данных или пространства имен. Эта форма приведена ниже. пв1пч псевдоним = имят где псевдоним становится еще одним именем типа (например, типа класса) или пространства имен, обозначаемого как имя. После того как псевдоним будет создан, он может быть использован вместо первоначального имени. Ниже приведен вариант программы из предыдущего примера, переработанный с целью показать создание и применение псевдонима мусоопсег вместо составного имени Соппсег.

Сосптпонп. // ПродемонСтрировать применение псевдонима. оз1пд Яувсегн // Создать псевдоним для составного имени // Соппгег.соопгоонп. озала Мусонпсег = Сонпсег.сонпспоипк // Объявить пространство имен для счетчиков. павеарасе Соппсег ( // Простой вмчитаккяий счетчик. с1авв Соипсоонп ( апг ча1т рнЬ11с Соопспоип(тпг и) ( ча1 = пт ) роьгьс чогб невес(ьпг и) ( ча1 = пт ) рнЬ11с тпс Сопок () ( 1Е(ча1 > 0) гекигп ча1--т е1ае гекнгп От ) с1ааа ИЯОевол ( асас1с чогд маьп() ( // Здесь и далее псевдоним Мусоспсег используется // вместо составного имени Соипсег.сонпкпонп.

МуСоипкег сб1 = пен Мусоипсег(10)т упс 1) бо ( ). = сб1.Соппс()т Сопво1е.игьге(1 + " ")т Глава )6. Пространства имен, препроцессор и сборки 503 ) ып11е (1 > О)," Сопяо1е.иг1ке11пе(); МуСочпсеГ сс(2 = пеы МуСоипкег(20); с(о ( 1 = сс(2.Соипс () т Сопяо1е.итаке(1 ь " ")т ) ыд11е(1 > 0) т Сопяо1е.иг1геьъпе() т со2.зевес(4)т с(о ( со2.Сочно()) Сопяо1е.итаке(1 т " "')) ) нп11е().

> О); Сопя о1е. Хгасег апе () т ) ) Псевдоним мусоппгег создается с помощью следующего оператора: ияапп МуСоипсег = Сочпкег.Соипсооыпт После того как псевдоним будет определен в качестве другого имени класса содпсег. соипспоып, его можно использовать для объявления объектов без дополнительного определения имени данного класса. Например, в следующей строке кода из рассматриваемой здесь программы создается объект класса содпг()оып: МуСоопсег сс)1 = пеы Мусочпсег(10) Аддитивный характер пространств имен Под одним именем можно объявить несколько пространств имен.

Это дает возможность распределить пространство имен по нескольким файлам или даже разделить его в пределах одного и того же файла исходного кода. Например, в приведенной ниже программе два пространства имен определяются под одним и тем же именем Соппгег. Одно из иих содержит класс Соопкпоып, а другое — класс Соппспр. Во время компиляции содержимое обоих пространств имен содпсег складывается вместе. // Аддитивный характер пространств имен. оя1пя Яуягюлт // Сделать видимым пространство имен Соипсег. ияапд Сочдгею // Это одно пространство имен Сочпкег. паюеярасе Сочпкег ( // Простой вычитаюыий счетчик. с1аяя Сочпкронп ( апк ча1) рчъ11с Соипсооып(1пс п) ( ча1 и) 504 Часть), Язык С№ риЫ№с чо1к) Ревев(1пи и) ( ча1 = пк ) риЫ№с 1пи Сосни() ( 11(ча1 > 0) кеиикп ча1 †; е1ве кекикп 0; ) ) ) // А это другое пространство имен Соипиек.

паиеврасе Соипсек ( // Простой суммируккций счетчик. с1авв Соипидр ( №пк ча1; апк какдекк риЫ1с 1пс Такдеи ( дек( кекикп какдекк ) риЫ№с Соипсдр(№пи и) ( какдек = и( ча1 = 0; ) риЫ№с чо1о Вевеи(1пс и) ( какдек - и; ча1 - 0; ) риЫ№с 1пи Соипи() ( 11(ча1 < какдеи) кеиикп ча) ~' К е1ве кеиикп Какдев) ) ) с1авв ЫЯОеио5 ( виаи1с чо1й Ма1п() ( СоипКПомп ск( = пем Соипироип(10) Соипидр си пем Соипсир(8)к апс 1; с(о ( = со.сосни() Сопво1е.икаие(1 + " "); ) ма11е(1 > 0); Сопво1е.ык1ие11пе(): Глава 16. Пространства имен, прелроцессор и сборки 505 с(о ( = со.Соопк()т Сапяо1е.Икьсе(1 + " ")т ) иЫ1е(1 < сп.такчес)т ) ) Вот к какому результату приводит выполнение этой программы: 10 9 8 7 6 5 4 3 2 1 0 012345678 Обратите также внимание иа то, что директива ияепе Сооппект делает видимым все содержимое пространства имен соппсег.

Это дает возможность обращаться к классам Соопепоип и Соопг()р непосредственно, т.е. беэ дополнительного указания пространства имен. При этом разделение пространства имен соопбег иа две части ие имеет никакого значения. Вложенные пространства имен Одно пространство имен может быть вложено в другое. В качестве примера рассмотрим следующую программу: // Вложенные пространства имен. пявпч Вуякеи; паееврасе И51 ( с1авя С1аяяА ( ров11с С1аЯЯА() ( Сопяо1е.ит1се11пе("Конструирование класса С1аяяА")т ) паиеярасе И52 ( // вложенное пространство имен с1авя С1авяВ ( рпЬ11с С1аяяВ() Сопяо1е.игеке11пе("Конструирование класса С1аяяВ") ) ) ) с1аяя Иевкесизпеео ( якапес чо16 Иа1п() ( И51.С1аявА а = пев И51.С1аявА() // И52.С1аяяВ Ь = пеи И52.С1авяВ()т // Неверно!!! // пространство И52 невидимо И51.И52.С1аяяВ Ь = пеи И51.И52.С1аяяВ()т // Верно( ) 506 Часть ).

Язык С№ Выполнение этой программы дает следующий результат: Конструирование класса С1аввА Конструирование класса С1аввз В этой программе пространство имен НЯ2 вложено в пространство имен НЯ1. Поэтому для обращения к классу С1аввВ необходимо дополнительно указать пространства имен Н51 и М52.

Указания одного лишь пространства имен М52 для этого недостаточно. Как следует из приведенного выше примера, пространства имен дополнительно указываются через точку. Следовательно, для обращения к классу с1ав вВ в методе маги ( ) необходимо указать его полное имя — НЯ1. НЯ2. С1аввВ.

Пространства имен могут быть вложенными более чем на два уровня. В этом случае член вложенного пространства имен должен быть дополнительно определен с помощью всех охватывающих пространств имен. Вложенные пространства имен можно указать в одном операторе паквеврасе, разделив их точкой. Например, вложенные пространства имен паиеврасе Онсегив ( паиеярасе 1ппегнз ) 'уу ... ) ) могут быть указаны следующим образом: паиеярасе Онсегиз.1ппегы5 ) !I ) Глобальное пространство имен Если в программе не объявлено пространство имен, то по умолчанию используется глобальное пространство имен.

Именно поэтому в примерах программ, представленных в предыдущих главах книги, не нужно было обращаться для этой цели к ключевому слову паиеврасе. Глобальное пространство удобно для коротких программ, как в примерах из этой книги, но в большинстве случаев реальный код содержится в обьявляемом пространстве имен. Главная причина инкапсуляции кода в объявляемом пространстве имен — предотвращение конфликтов имен. Пространства имен служат дополнительным средством, помогающим улучшить организацию программ и приспособить их к работе в сложной среде с современной сетевой структурой. Применение описателя псевдонима пространства имен Пространства имен помогают предотвратить конфликты имен, но не устранить их полностью. Такой конфликт может, в частности, произойти, когда одно и то же имя объявляется в двух разных пространствах имен и затем предпринимается попытка сделать видимыми оба пространства.

Допустим, что два пространства имен содержат класс мус1авв. Если попытаться сделать видимыми оба пространства имен с помощью директив пв1по, то имя МуС1авв из первого пространства вступит в конфликт с именем МуС1авв из второго пространства, обусловив появление ошибки неоднозначности. В таком случае для указания предполагаемого пространства имен явным образом можно воспользоваться описателем псевдонима пространства имен::. Глава )6.

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

// Продемонстрировать необходимость описателя::. // // Эта программа не подлежит компиляции. и51пя Буягещт // Использовать оба пространства имен СоипГЕГ // и АпогпегСоипсег. иягпч Соипгегт ия1пч АпоГЬегСоипсегт // Объявить пространство имен для счетчиков. пащеярасе Соипсег ( // Простой внчитающий СЧЕтчик. с1аяя Соипспонп ( гпс ча1т риЬ11с Соипгпонп(1пг и) ( иа1 = пт ) // ) ) // Обьявить еще одно пространство имен для счетчиков. пащеярасе Апогпегсоипсег ( // Объявить еще один класс Соипгпонп, принадлежащий // пространству имен АпогпегСоипгег. с1аяя СоипгОонп ( гпг иа1т ривггс СоипСРонп(апс и) ( ча1 = пт // ) ) с1аяя ИЬуА11аясиа1111ег ( ясасгс ио1б Магп() ( 1пг 1т 508 Часть ).

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

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