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

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 98

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

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

Первым из них является представленное ранее пространство имен соппсег, а вторым — соппгег2. Оба пространства имен содержат классы с одинаковым именем Соппгпоип, но поскольку это разные пространства, то оба класса Соппг()оип не вступают в конфликт друг с другом. Кроме того, оба пространства имен определены в одном и том же файле. Как пояснялось выше, это вполне допустимо. Безусловно, каждое из этих пространств имен можно было бы выделить в отдельный файл, если бы в этом возникла потребность. Пространства имен предотвращают конфликты имен.

ивгпэ вувсещ) Глава 16. Пространства имен, препроцессор и сборки 517 Объявить пространство имен Соппсег. пазеярасе Соопсег ( Простой вычитаюший счетчик. с1аяя Соппсбоип ( 1по ча1; роЬ11с Соппябонп(лпя и) ( ча1 = и; ) рпб11с чо16 невес(апс и) ( ча1 = и; роб11с Опс Сопля() ( 11(ча1 > О) гесигп ча1 †; е1ве геяпгп 0; ) Объявить пространство имен Соопяег2. паюеярасе Соипсег2 ( /* Этот класс Соопсбоип относится к пространству имен Соопяег2 и поэтому не вступает в конфликт с аналогичным классом из пространства имен Соппяег. *l с1аяя Соппсбонп ( роб11с чояб Соопс() ( Сопяо1е.игяяет фпе("Это метод Сонно () из "пространства имен Соппсег2."); ) с1аяя НБОеюо2 ( ясасгс тога Маап() ( // Это класс Соопсоонп из пространства имен Соопсег.

Соопсег.СоопГОонп сс(1 = пен Соопсег.СоопГОонп(10); // Это класс Соппсбонп из пространства имен Соппсег2. Соопсег2.СоопГОонп сс)2 = пен Соппсег2.Соопобонп(); 1пг 1; с)о ( = сб1.Соьпс() ( Сопяо1е.нгаяе(1 + " "): ни11е(1 > О); Сопяо1е.нг1сеО1пе(); сб2.Сопля()," ) ) 818 Часть ). Язык С№ Вот к какому результату приводит выполнение этой программы. 109876543210 Это метод Соопс)) ия пространства имен Соопсег2. Как следует из приведенного выше результата, класс СОООСРоып из пространства имен Сонисег существует отдельно от класса того же названия из пространства имен Соипгег2, и поэтому конфликт имен не возникает. Несмотря на всю простоту данного примера, он наглядно показывает, как удается избежать конфликта имен в собственном коде и коде, написанном другими разработчиками, поместив классы с одинаковыми именами в разные пространства имен.

Директива ив1пд Если в программе присутствуют частые ссылки на члены конкретного пространства имен, то указывать это пространство всякий раз, когда требуется ссылка на него, не очень удобно. Преодолеть это затруднение помогает директива ия1по.

В подавляющем большинстве приводившихся ранее примеров программ с помощью этой директивы делалось видимым глобальное для С№ пространство имен Буя гею, поэтому она отчасти вам уже знакома. Как и следовало ожидать, с помощью директивы нягпд можно сделать видимыми вновь создаваемые пространства имен. Существуют две формы директивы пя1пс. Ниже приведена первая из них: иезид имя; где имя обозначает имя того пространства имен, к которому требуется получить доступ.

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

Продемонстрировать применение директивы няьпч. оазис Буясеюг // Сделать видимым пространство имен Соопсег. пя1пч Соопгегг Объявить пространство имен для счетчиков. паюеярасе Соопсег ) // Простой вычитаююий счетчик. с1аяя соопгоонп ) ьпс на1„. роЬ1ьс Сонпсбонп)ьпя и) ( на1 = п; ) рпЫгс ного Пеяег)ьпс п) ( на1 = и; Глава 16. Пространства имен, препроцессор и сборки 519 рп)>11с ьпс Сонат () ( 11(на1 > О) гетпгп та1 —; е1яе гетигп 0; ) ) с1аяя НЯРеыоз ( ясатьс того Ма1п () ( Теперь класс СоппГРонп может быть использован непосредственно. СоппГОонп сб1 = пен СопптОонп(10)г 1пт 1Г бо ( 1 = сб1.сонат () ' Сопяо1е.игьте(1 + " ") нп11е(1 > О); Сопяо1е.нг1теь1пе()) СоппСОонп сб2 = пен СопптРонп(20)г бо ( сб2.Соппт()) Сопяо1е.нг).те(). + " "); ) ни11е(1 > О); Сопяо1е.иггтевьпе(); С02.паяет(4)Г бо ( 1 = сг)2.Соппс ()," Сопяо1е.нгьте(1 + " "); ) нб11е(1 > О); Сопяо1е.нгьтеььпе()) В эту версию программы внесены два существенных изменения.

Первое из них состоит в применении директивы пя1по в самом начале программы, как показано ниже. пя1по Сопптаг) Благодаря этому становится видимым пространство имен сопл сед. Второе изменение состоит в том, что класс СоппСРонп больше не нужно дополнительно определять с помощью пространства имен соппсег, как демонстрирует приведенная ниже строка кода из метода Ма 1п ( ) . СоппГОонп сб1 = пан СоппГОонп(10) Теперь пространство имен соппсег становится видимым, и поэтому класс СоппСРоып может быть использован непосредственно.

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

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

Ниже приведен вариант программы из предыдущего примера, измененный с целью показать создание и применение псевдонима МуСоип С ел вместо составного имени Соппьег.Соппьпонп. // Продемонстрировать применение псевдонима. оя1пч Зуясеьи создать псевдоним для составного имени соопсег.соопгпонп. оягпч МуСоопсег = Соопсег.соппСОонпе // Объявить пространство имен для счетчиков. паиеярасе Соопсег ( // Простой вычитаюиий счетчик. с1аяя соопгпонп ( гпс ча1; рпЬ1гс Соипсоонп(упс и) ( ча1 = п; ) ро)о11с ног з Кеяег (ьпг и) ( ча1= и; рнвзьс гпс Сисис() ( 1Г(ча1 > О) гесогп ча1 †; е1яе геспгп 0; ) с1аяя Нзоеио4 ( ягаг1с чо1о маги П ( Здесь и далее псевдоним Мусоопгег используется вместо составного имени Соппсег.Соипсоонп. Глава 16. Пространства имен, препроцессор и сборки 521 Мусоппсег со1 = пеи МуСоппсег(10); 1пг 1; с(о сг)1„сопля (); Сопво1е.иггсе(г т " "): ин11Е(1 > О); Сопяо1е.иггсеввпе(); МуСоппсег со2 = пен Мусоопсег(20); со ( = сг(2.сопля (); Сопяо1е.иг11е(1 + " ") ) нп11е ().

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

Это дает возможность распределить пространство имен по нескольким файлам или даже разделить его в пределах одного и того же файла исходного кода. Например, в приведенной ниже программе два пространства имен определяются под одним и тем же именем Соппгег. Одно из них содержит класс Соппгс)охп, а другое — класс СоппС()р. Во время компиляции содержимое обоих пространств имен Соппге г складывается. уу Аддитивный характер пространств имен. пя1пч Буягегн Сделать видимым пространотво имен Соппсег. пв1пд Соопгег; О Зто одно пространство имен Соопсег.

522 Часть 1. Язык С№ паюеврасе Соиптег ( // Простой вмчитающий счетчик. с1аяв СоиптОомп ( 1пт ча1; риЬ11с СоиптОомп(тпт и) ( ча1 = и( ) риЬ1тс чо10 Везет(тпт и) ( ча1 = и; риЬ11с тпт Соипт() ( 15(ча1 > 0) гетигп ча1 —; е1ве тетитп О) ) ) // й это другое пространство имен Соиптег. паюеврасе Соиптег ( // Простой суммирующий счетчик.

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

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

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

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6447
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее