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

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

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

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

Директива $еггог Директива ()еггог вынуждает компилятор прервать компиляцию. Она служит в основном для отладки. Ниже приведена общая форма директивы ()еггог. ))еггог сообщение об ошибке Когда в коде встречается директива () еггог, выводится сообщение об ошибке. Например, когда компилятору встречается строка кода ()еггог Это тестовая ошибка! компиляция прерывается ивыводитсясообщение "Это тестовая ошибка!".

534 Часть 1. Язык Стт Директива $ттагпз.пгт Директива Фнатп1пд действует аналогично директиве Феттот, за исключением того, что она выводит предупреждение, а не ошибку. Следовательно, компиляция не прерывается. Ниже приведена общая форма директивы Мнатп1пд. Унатпьпд предупреждающее сообщение Директива $1гпе Директива т11пе задает номер строки и имя файла, содержащего эту директиву.

Номер строки и имя файла используются при выводе ошибок или предупреждений во время компиляции. Ниже приведена общая форма директивы Ф11пе. $11пе номер "имя Файла" Имеются еще два варианта директивы Ф11пе. В первом из них она указывается с ключевым словом беГап1т, обозначающим возврат нумерации строк в исходное состояние, как в приведенном ниже примере. $11пе бетан1т А во втором варианте директива $11пе указывается с ключевым словом 1т1ббеп. При пошаговой отладке программы строки кода, находящиеся между директивой Ф11пе Пгббеп и следующей директивой $11пе без ключевого слова Ыстстеп, пропускаются отладчиком.

Директивы $геттз.оп и $епйгедз.оп С помощью директив Фтед1оп и Фепсттед1оп определяется область, которая разворачивается или сворачивается при структурировании исходного кода в интегрированной среде разработки 1г1апа1 Бтцг11о. Ниже приведена общая форма этих директив: «тедтоп текст последовательность кода ьепбтедтоп текст где текст обозначает необязательную символьную строку. Директива Мргаоша С помощью директивы Фртадща инструкции задаются компилятору в виде опций.

Ниже приведена общая форма этой директивы: «ртадща опция где опция обозначает инструкцию, передаваемую компилятору. В текущей версии СФ предусмотрены две опции для директивы Фртадща. Первая из них, натптпд, служит для разрешения или запрета отдельных предупренсдений со стороны компилятора. Она принимает две формы: Фртадща натпьпд еьаап1е предупреждения Ьртадща натпьпд театоте предупреждения Глава 16. Пространства имен, препроцессор и сборки 535 где предупреждения обозначает разделяемый запятыми список номеров предупреждений.

Для отмены предупреждения используется опция с11заЬ1е, а для его разрешения — опция гезссге. Например, в приведенной ниже директиве фргасва запрещается выдача пррдупреждения №168, уведомляющего о том, что переменная объявлена, но не используется. эрсанова магсгсо аьзаЬ1е 168 Второй для директивы ф рта сева является опция спес Кзэв.

Она служит для формирования контрольной суммы в проектах АБР.)х)ЕТ. Ниже приведена ее общая форма: $ргачва спесизсв "ммя файла "(ООГ0]" "контрольная сумма" где нмя файла обозначает конкретное имя файла; огггР— глобально уникальный идентификатор, с которым связано имя файла; гсснтрольная сумма — шестнадцатеричное число, представляющее контрольную сумму. У этой контрольной суммы должно быть четное число цифр. Сборки и модификатор доступа ~п~егпа1 Сборка является неспъемлемой частью программирования на СФ.

Она представляет собой один или несколько файлов, содержащих все необходимые сведения о развертывании программы и ее версии. Сборки составляют основу среды .)х)ЕТ, Они предоставляют механизмы для надежного взаимодействия компонентов, межъязыковой возможности взаимодействия и управления версиями.

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

Дело в том, что исполняемый файл, создаваемый во время компиляции программы на СФ, на самом деле представляет собой сборку, содержащую исполняемый код этой программы, а также другие виды информации. Таким образом, когда компилируется программа на СФ, сборка получается автоматически. У сборок имеется много других особенностей, и с ними связано немало актуальных вопросов программирования, но, к сожалению, их обсуждение выходит за рамки этой книги. Ведь сборки являются неотъемлемой частью процесса разработки программного обеспечения в среде .)ЧЕТ, но формально они не относится к средствам языка СФ. Тем не менее в Ся имеется одно средство, непосредственно связанное со сборкой. Это модификатор доступа 1псегпа1, рассматриваемый в следующем разделе.

536 часть 1. язык С№ Модификатор доступа з.п~егпа1 Помимо модификаторов доступа рпь11с, ргьуаге и ргогесгес(, использовавшихся в представленных ранее примерах программ, в С№ предусмотрен также модификатор доступа г и Ге гпа 1. Этот модификатор определяет доступность члена во всех файлах сборки и его недоступность за пределами сборки. Проще говоря, о члене, обозначенном как ьпсе гпа1, известно только в самой программе, но не за ее пределами. Модификатор доступа 1псегпа1 особенно полезен для создания программных компонентов. Модификатор доступа ьп Сегпа1 можно применять к классам и их членам, а также к структурам и членам структур.

Кроме того, модификатор 1пгегпа1 разрешается использовать в объявлениях интерфейсов и перечислений. Из модификаторов ргосессес( и ьпсегпа1 можно составить спаренный модификатор доступа ргосессес( 1псегпа1. Уровень доступа ргосессес( ьпсегпа1 может быть задан только для членов класса. Член, обьявленный как ргосессег( 1псегпа1, доступен лишь в пределах собственной сборки или для производных типов. Ниже приведен пример применения модификатора доступа г пге гпа1. Использовать модификатор доступа ьпгегпа1. пяьпч Буягеьн с1авя 1псегпа1тезя ( ьпсегпа1 гпс х," ) с1авв 1псегпа10еио ( всас1с уогг( Маьп() ( 1пгегпа1тевг оЬ = пеи 1пгегпа1тевг()г оЬ.х = 101 !/ доступно, потому что находится в том зе файле сопво1е.хг1геь1пе("значение оъ.х: " + оь.х)г В классе 1пгегпа1тезс поле х объявляется как ьпсегпа1. Это означает, что поле х доступно в самой программе, но, как показывает код класса 1псегпа1оеыо, оно недоступно за пределами программы.

538 Часть!. Язык С() Для поддержки динамической идентификации типов в С№ предусмотрены три ключевых слова: Вз, аз и гуреев. Каждое из этих ключевых слов рассматривается далее по очереди. Проверка типа с помощью оператора йв Конкретный тип объекта можно определить с помощью оператора 1з. Ниже приведена его общая форма: выранение ьв тип где выражение обозначает отдельное выражение, описывающее объект, тип которого проверяется. Если выражение имеет совместимый или такой же тип, как и проверяемый тип, то результат этой операции получается истинным, в противном случае— ложным. Так, результат будет истинным, если выражение имеет проверяемый тип в той или иной форме. В операторе 1з оба типа определяются как совместимые, если они одного и того же типа или если предусмотрено преобразование ссылок упаковка или распаковка.

Ниже приведен пример применения оператора ьв. // Продемонстрировать применение оператора 1в. ов1пэ Бувсевг с1авв А () с1авв В : А () 11(Ь ьв В) Сопво1е.игьгеъьпе тт(а тв оЬ№есг) Сопво1е.итьоеъьпе ("В имеет тнп В")г ("а имеет тнп оЬ№есс"); Вот к какому результату приводит выполнение этого кода. а имеет тнп А Ь совместим с й, поскольку он производный от й Ь имеет тнп В а имеет тнп оЬЗесь Большая часть выражений 1в в приведенном выше примере не требует пояснений, но два из них необходимо все же разъяснить. Прежде всего, обратите внимание на следующую строку кода. с1авв Пве1в ( всасзс яоьд Маьп() ( А а = лен А(); В Ь = лен В(); 11(а ьв А) Сопво1е.итзгеъ1пе 11(Ь ьв А) Сопво1е.

Хт1оеъьпе 1Г(а ьв В) Сопво1е.Хт1теъьпе ("а имеет тнп А"); ("Ь совместим с А, поскольку он производный от й") ("Не выводится, поскольку а не производный от В") Глава 17. Динамическая идентификация типов, рефлексия и атрибуты 539 3г(Ь ья А) Сопяо1е.нг1геььпе("Ъ совместим с А, поскольку он производный от А"); Условный оператор 11 выполняется, поскольку Ь является объектом типа В, производным от типаА. Но обратное несправедливо. Так, если в строке кода 11(а ья В) Сопяо1е.Хгьгеььое("Не выводится, поскольку а не производный от В"); условный оператор 11 не выполняется, поскольку а является объектом типа А, не про- изводного от типа В.

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

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

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

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

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