Главная » Просмотр файлов » Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)

Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865), страница 15

Файл №1160865 Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)) 15 страницаНэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865) страница 152019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Чтобы проиллюстрировать идею, пространство имен Аде.ус111саев 56 Глава 3 было пополнено новым классом по имени Апотсегпг11№гу. Этот класс должен быть полностью квалифицирован при обращении к нему, поскольку для него никакого псевдонима не объявлено. Кстати, совершенно допустимо дать псевдониму другое имя, отличное от яовепс№1№су, Хотя назначение псевдониму другого имени может быть полезно для предотвращения конфликтов имен, все же лучше использовать псевдоним, совпадающий с исходным именем класса, чтобы избежать в будущем путаницы при сопровождении. На заметку! Если вы следуете четким принципам разделения при определении пространств имен, то не столкнетесь с этой проблемой. В проектировании считается дурным тоном создавать пространства имен, которые содержат множество разнообразных типов, относящихся к различным группам функциональности.

Вместо этого должны создаваться пространства имен с интуитивно взаимосвязанными типами внутри; это облегчит для разработчиков нахождение нужных типов. В .г(ЕТ Егаглеаогх неоднократно встречаются пространства имен с некоторыми общими типами, включенными в них, и с более "развитыми" типами, включенными во вложенное пространство имен под названием лочапсео, например, яуясев.

хв1. яег№а1№зат№оп. Аочапсегд Во многих отношениях при создании библиотек такие рекомендации отражают принцип открытости, применяемый при создании интуитивно понятных пользовательских интерфейсов. Другими словами, выбирайте интуитивно понятные имена и группы для типов и делайте их легко обнаруживаемыми. Поток управления Подобно С, С++ и дача, язык С№ включает обычный набор структур, управляющих потоком управления. В С№ реализован даже такой непопулярный оператор, как сосо. Н-Е18Е, ВУМ1Е, 6О-ЫМ1Е И ЮОГ Конструкция 1№-е1яе в С№ идентична той же конструкции в С++ и дача. В качестве рекомендации по стилю: в операторах №г предпочтительней всегда использовать блоки, как и в любых других операторах управления потоком, даже если эти блоки содержат всего один оператор, как в примере ниже; №Г( <Сеет сепг)1С1оп> ) ( Сопяо1е.иггеев№пе( "Выполнение находится э этой точке." ) ) Операторы нЬ11е, т)о и бог идентичны доступным в языках С++ и дача.

ЭЫ~1С№1 Синтаксис оператора янаесЬ в С№ очень похож на синтаксис ян№осЬ в С++ и дача. Основное отличие состоит в том, что ян№ссЬ в С№ не допускает прохода в следующий раздел. Он требует наличия в конце каждого раздела оператора Ьгеа)с (или другой передачи управления).

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

Кроме того, можно эмулировать прохождение сквозь раздел с помощью оператора дого: Обзор синтаксиса Сй 57 яиттсл ( К ) саве 0: Сопяо1е.нт1те11пе( "саяе 0" ); ОоСо саве 1; саве 1: саве 2: Сопяо1е.нгстесспе( "саяе 1 или саяе 2" Ьтеаьл 1 На заметку! Использование оператора сосо обычно считается дурным тоном в программировании, поскольку, помимо прочего, порождает код, который очень трудно сопровождать, Наличие этого оператора в языке отнюдь не означает возможность его бесконтрольного использования.

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

Даже последний раздел должен содержать его. Многие разработчики С++ и Юача пропускают оператор Ьгеах в последнем разделе, поскольку после него все равно происходит выход потока управления за пределы яи).СсЬ. Изящество принципа "никаких сквозных проходов" состоит в том,что даже если разработчик, сопровождающий код, впоследствии решит поменять местами порядок меток, он не привнесет никаких ошибок.

в отличие от С++ и дача. Обычно для завершения разделов яитссп используется оператор Ьтеах. но для выхода из этого раздела можно применять любой оператор, в том числе сьтои и теспгп, а также сопстппе, если яизссь встроен в цикл, в котором применение сопттппе имеет смысл. ЮохеасЬ Оператор Еоте асЬ позволяет выполнять итерацию по коллекции объектов в синтаксически естественной манере.

Следует отметить, что ту же функциональность можно реализовать с использованием цикла ип11е. Однако это может выглядеть некрасиво, к тому же итерация по элементам коллекции — настолько распространенная задача, что синтаксис Еогеасп является полезным дополнением к языку. Если, например, имеется массив (или коллекция любого другого типа) строк, то пройти по всем строкам можно с помощью следующего кода: ятят1с чо1С Мвтп() ( яттспд[) ятт1пся = пеи ятг1пс[5)к яттспся[0) = "ВсЬ"! ятгспдя[1) = тасе"; тогезсп( ятгспс 1теи тп яттспдя ) ( Сопяо1е.нг1те1.тпе( "(О)", ттея ) ) Внутри скобок цикла Еотеасп можно объявить тип переменной итератора.

В данном примере это строка. За объянлением типа итератора идет идентификатор коллекции, по которой нужно выполнить итерацию. Здесь может использоваться любой объект, реализующий шаблон Со!!еспоп [Коллекция) '. Тнп, реализующий шаблон проектирования Со!)есноп [Коллекция). должен реализовать либо интерфейс 1еппиегаь1е [или тепппетаь1е<>),либо общедоступные методы сесеппвегясст н мсченехс вместе с общедоступным свойством ситтепс. другими словами. для использования в операторе гогеасп тип не обязан реализовыватыхппиетяЪ1е, хотя типичная реализация шаблона проектирования Сойесноп предусматривает именно реализацию упомянутого интерфейса. 58 Глава 3 Коллекции подробно рассматриваются в главе 9, в которой также исследуется вопрос о том, какие вещи должен реализовать тип, чтобы трактоваться как коллекция.

Естественно, элементы внутри коллекции, используемые в операторе Гагеасп, должны быть явно преобразуемыми к типу итератора. Если это не так, то оператор гагеасп сгенерирует исключение 1пча11аСавсххсерс1оп во время выполнения. Если хотите испытать это на собственном опыте, попробуйте запустить следующую модификацию предылущего примера: вгаг1с во1а Магп() ( оь]есг[] вгг1пав = пея аь]вся[5]; впг1пав(0] = 1) вяг1пав[1] = 2) гогевсп( всг1пз 1Геа гп всг1пав ) ( Сопво1е.вг1се11пе( "(О)", ьсет ) Обратите внимание, что в коде, вставленном в оператор гагеасЬ, не допускается модификация переменной итератора.

Она должна трактоваться как доступная только для чтения. Это означает, что переменную итератора нельзя передавать методу в качестве выходного [опс] или ссылочного [гег] параметра. Если вы попытаетесь сделать что-либо подобное, то компилятор немедленно сообщит об ошибке. ЪХЕаХ, СОП1~аиЕ, ДО~О, ЮЕ1иЕП И ~ВЕЛ Язык С№ включает набор знакомых операторов, которые позволяют безусловно передавать управление в другое место кода.

К ним относятся Ьгеа)г, сопя).ппе, доса, гесигп и гпгоя. Их синтаксис должен быть знаком любому разработчику С++ нли дача [хотя оператор дога в дача отсутствует). Применение этн операторов, по сути, идентично во всех трех языках. Резюме В настоящей главе был представлен синтаксис С№. При этом всячески подчеркивалось, что С№, подобно другим похожим объектно-ориентированным языкам, является строго типизированным языкам. В этих языках используется механизм проверки типов компилятора, который позволяет отыскать как можно больше ошибок во время компиляции, вместо того, чтобы находить их позднее, во время выполнения.

В С1Л все типы классифицируются как типы значений или ссылочные типы, и каждой категории присущи собственные ограничения, которые будут подчеркиваться на протяжении всей книги. Также здесь была представлена концепция пространств имен и показано, как они помогают избежать засорения глобального пространства имен слишком большим количеством типов, имена которых могут вступать в конфликты. И, наконец, было продемонстрировано, как работают управляющие операторы в С№, а также описаны их сходства и отличия с аналогичными операторами в С++ и дача. В следующей главе будет глубже рассматриваться устройство классов и структур вместе с отличиями в поведении их экземпляров. Глд~~ 4 Классы, структуры и объекты в се. что угодно, является объектом! По крайней мере, если смотреть с точки зрения СЬВ и языка программирования С№.

Это не удивительно, потому что С№ — в конце концов, объектно-ориентированный язык. Создаваемые через определение классов объекты С№ обладают теми же возможностями, что и другие предопределенные в системе объекты. Фактически, ключевые слова языка С№ вроде ьпс и Ьоо1 — это просто псевдонимы для предопределенных типов значений из пространства имен яузсель в данном случае — яузсегл. 1псз2 и яузсеа. Воо1еап соответственно.

На заметку! Настоящая глава довольно объемная, но пусть это не пугает. Для того чтобы удовлетворить запросы широкой аудитории, я постарался осветить насколько возможно много базового материала по С№. Если вы — профессионал в области С++ или дача, то можете пропустить эту главу и обращаться к ней по мере чтения последующих глав. Некоторые из затронутых здесь тем более подробно раскрываются в последующих главах. Первый раздел этой главы посвящен определению классов (ссылочных типов), а за ним следует дискуссия об определениях структур (типов значений). Это две фундаментальных группы типов в исполняющей системе .НЕТ.

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

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

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

Нэш Трей - C# 2010
Accelerated_C_2010-4565
3_syntax_overview
3_generics_1.cs
as_1.cs
boxing.cs
conversions_1.cs
implicit_type_1.cs
is_1.cs
references_1.cs
references_2.cs
references_3.cs
values_1.cs
4_classes_structs
4_abstract_classes_1.cs
4_beforefieldinit_1.cs
4_box_1.cs
4_box_2.cs
4_box_3.cs
4_box_4.cs
4_box_5.cs
4_class_definition_1.cs
4_compareto_1.cs
4_containment_example_1.cs
4_containment_example_2.cs
4_containment_example_3.cs
4_ctor_struct_1.cs
4_ctor_struct_2.cs
4_ctor_struct_3.cs
4_destructor_1.cs
4_destructor_2.cs
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7045
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее