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

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

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

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

В конструкторе ХУСоогб(тпг, Тпз) В конструкторе ХУСоогб() В конструкторе ХУСоогб(гпс, гпг) В конструкторе ХУСоогб(гпс, гпс) 246 Часть!. Язык С№ В конструкторе Хтсоого(о)оЗ) С1.х, В(.у: 0, 0 С2.х, С2.у: 8, 9 сз.х, сз.у: 8, 9 Код в приведенном выше примере работает следующим образом. Единственным конструктором, фактически инициализирующим поля х и у в классе ХУСоогс), является конструктор ХХСоогс) (ьпг, ъпб) .

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

То же самое происходит и при создании объекта С2. Вызывать перегружаемый конструктор с помощью ключевого слова С)з1в полезно, в частности, потому, что он позволяет исключить ненужное дублирование кода. В приведенном выше примере нет никакой необходимости дублировать во всех трех конструкторах одну и ту же последовательность инициализации, и благодаря применению ключевого слова сбьв такое дублирование исключается.

Другое преимущество организации подобного вызова перезагружаемого конструктора заключается в возможности создавать конструкторы с задаваемыми "по умолчанию" аргументами, когда эти аргументы не указаны явно. Ниже приведен пример создания еще одного конструктора ХХСоогс). роы1с хусоогг)(гпс х): сЫв(х, х) ( ) По умолчанию в этом конструкторе для координаты у автоматически устанавливается то же значение, что и для координаты у.

Конечно, пользоваться такими конструкциями с задаваемыми "по умолчанию" аргументами следует благоразумно и осторожно, чтобы не ввести в заблуждение пользователей классов. Инициализаторы объектов Ин ициализаторы объектов предоставляют еще один способ создания объекта и инициализации его полей и свойств.

(Подробнее о свойствах речь пойдет в главе 10.) Если используются инициализаторы объектов, то вместо обычного вызова конструктора класса указываются имена полей или свойств, инициализируемых первоначально задаваемым значением. Следовательно, синтаксис инициализатора объекта предоставляет альтернативу явному вызову конструктора класса.

Синтаксис инициализатора объекта используется главным образом при создании анонимных типов в ЕПЩ-выражениях. (Подробнее об анонимных типах и ) 1)Щ-выражениях — в главе 19.) Но поскольку инициализаторы объектов можно, а иногда и должно использовать в именованном классе, то ниже представлены основные положения об инициализации объектов. Обратимся сначала к простому примеру.

/! Простой пример, пемонстрируюший применение инициапиваторов объектов. овьпч зувтею," с1авв МуС1авв ( роЫгс 1пг Соппш роЫ1с ввгьпч згг~ ) Глава 8. Подробнее о методах и вассах 247 с1азз ОЬЗ1пТСОеио ( зпаСТс чово Ма1п() ( г'г' Сконструировать объект типа МуС1азя, используя инипиализаторы объектов. МуС1азз ЬЬ1 = пен МуС1азз ( Соппп = 100, Бгг = "Тестирование" )( Сопяо1е.иг1сеъьпе(оЬ).соппг + " " + оЬз.згг); Выполнение этого кода дает следующий результат.

100 Тестирование Как показывает результат выполнения приведенного выше кода, переменная экземпллра оЬ). Соппс инициализирована значением 100, а переменная экземпляра оЬ1. Бгг — символьной строкой "Тестирование". Но обратите внимание на то, что в классе МуС1а аз отсутствуют явно определяемые конструкторы и не используется обычный синтаксис конструкторов. Вместо этого объект оЬ1 класса МуС1а за создается с помощью следующей строки кода. МуС1азз ЬЬ1 = пен МуС1азя ( Сопле = 100, Бгг = "Тестирование" ) В этой строке кода имена полей указываются явно вместе с их первоначальными значениями. Это приводит к тому, что сначала конструируется экземпляр объекта типа МуС1аз з (с помощью неявно вызываемого по умолчанию конструктора), а затем задаются первоначальные значения переменных Сопок и Бгг данного экземпляра.

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

Инициализаторы объектов обычно не используются в именованных классах, как, например, в представленном выше классе МуС1аз з, хотя это вполне допустимо. Вообще, при обращении с именованными классами используется синтаксис вызова обычного конструктора. И, как упоминалось выше, инициализаторы объектов применяются в основном в анонимных типах, формируемых в 1!)х)( )-выражениях. Необязательные арГументы В версии СЕ 4.0 внедрено новое средство, повышающее удобство указанил аргументов при вызове метода.

Это средство называется необлзан(ельными аргументами и позволяет определить используемое по умолчанию значение для параметра метода. 248 Часть (. Язык 0№ Данное значение будет использоваться по умолчанию в том случае, если для параметра не указан соответствующий аргумент при вызове метода.

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

Используемое по умолчанию значение должно быть константным выражением. В качестве примера рассмотрим следующее определение метода. всасьс уо1о Орскгчмесь (гпс а1рьа, 1пс ьеса=10, Ьпс чапипа = 20) ( В этой строке кода объявляются два необязательных параметра: Ьега и оапвпа, причем параметру ЬеСа по умолчанию присваивается значение 10, а параметру оапипа— значение 20. Зги значения используются по умолчанию, если для данных параметров не указываютгя аргументы при вызове метода. Следует также иметь в виду, что параметр а1рЬа не является необязательным.

Напротив, это обычный параметр, для которого всегда нужно указывать аргумент. Принимая во внимание приведенное выше объявление метода ОрСАгомеСЬ (), последний можно вызвать следующими способами. Передать все аргументы явным образом. ОрСАгчиеСЬ(1, 2, 3); !/ Сделать аргумент даппа необязательным. ОрСАгдмеСЬ(1, 2)1 Сделать оба аргумента Ьева и Чаипа необязательными. ОргягЧМеСЬ(1)1 При первом вызове параметру а1рЬа передается значение 1, параметру ЬеСа— значение 2, а параметру оапппа — значение 3. Таким образом, все три аргумента задаются явным образом, а значения, устанавливаемые по умолчанию, не используются. При втором вызове параметру а1рЬа передается значение 1, а параметру ЬеСа — значение 2, но параметру оапппа присваивается устанавливаемое по умолчанию значение 20.

И наконец, при третьем вызове упомянутого выше метода параметру а1рЬа передается значение 1, а параметрам Ьеса и оапппа присваиваются устанавливаемые по умолчанию значения. Следует, однако, иметь в виду, что параметр Ьеса не получит устанавливаемое по умолчанию значение, если то же самое не произойдет с параметром оапяпа. Если первый аргумент устанавливается по умолчанию, то и все остальные аргументы должны быть установлены по умолчанию. Весь описанный выше процесс демонстрируется в приведенном ниже примере программы.

Продемонстрировать необязательные аргументы. овхпд Зувсеи; с1авв Оргьоплгчэеио ( вСаС1с уо1о ОрвкгЧМеСЬ(ьвс а1рла, 1пс Ьеоа=10, 1лс дапспа = 20) ( Сопво1е.иг1Се11пе("Это аргументы а1рЬа, Ьева и даппа: а1рЬа + " " + Ьеоа + " " ь Чепца); Глава 8. Подробнее о методах н вассах 249 зсагьо ноьб Магп(( ( Передать псе аргументы явным образом.

Орпдгоиепь(1, 2, 3( 1 Сделать аргумент чапипа необязательным. Орпдгоиесд(1, 2(г Сделать оба аргумента Ьепа и пашка необязательными. Орпдгонесд(1(; ( Результат выполнения данной программы лишь подтверждает применение используемых по умолчанию аргументов. Это аргументы а1рЬа, Ьепа и дапюпа: 1 2 3 Это аргументы а1рда, Ьега и чапая: 1 2 20 Это аргументы а1рда, Ьепа и чашша: 1 10 20 Как следует из приведенного выше результата, если аргумент не указан, то используется его значение, устанавливаемое по умолчанию. Следует иметь в виду, что все необязательные аргументы должны непременно указываться справа от обязательных. Например, следующее объявление оказывается недействительным.

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

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

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

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