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

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

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

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

ьпп Башр1е(зпгьпд паше = "пользопатель", ьпг пзег16( ( /( Ошибка! Для исправления ошибки в этом объявлении необходимо указать аргумент па ег1с( до аргумента паше. Раз уж вы начали объявлять необязательные аргументы, то указывать после них обязательные аргументы нельзя. Например, следукзщее объявление также оказывается неверным. ьпп Яшпр1е(ьпп ассоопп10, ппг1пе паше = "пользователь", ьпп опег1б( ( !/ Ошибка! Аргумент паше объявляется как необязательный, и поэтому аргумент пзег1с( следует указать до аргумента паше (или же сделать его также необязательным). Помимо методов, необязательные аргументы можно применять в конструкторах, индексаторах и делегатах.

(Об индексаторах и делегатах речь пойдет далее в этой книге.) Преимущество необязательных аргументов заключается, в частности, в том, что они упрощают программирующему обращение со сложными вызовами методов и конструкторов. Ведь нередко в методе приходится задавать больше параметров, чем обычно требуется. И в подобных случаях некоторые из этих параметров могут быть сделаны необязательными благодаря аккуратному применению необязательных аргументов.

Это означает, что передавать нужно лишь те аргументы, которые важны в данном конкретном случае, а не все аргументы, которые в противном случае должны быть обязательными. Такой подход позволяет рационализировать метод и упростить программирующему обращение с ним. Необязательные аргументы н перегрузка методов В некоторых случаях необязательные аргументы могут стать альтернативой перегрузке методов. Для того чтобы стало понятнее, почему это возможно, обратимся еще 250 часть!.

язык С() раз к примеру метода ОрглгоыеСЬ () . До появления в СЗ необязательных аргументов нам пришлось бы создать три разных варианта метода ОрслгоМеСЬ (), чтобы добиться таких же функциональных возможностей, как и у рассмотренного выше варианта этого метода. Все эти варианты пришлось бы объявить следующим образом. яяая1о чо1д ОрСАгонеяв(хпя а1рЬя) ягвгьо чоьд Орялгпнеяь(1пя а1рвв, ьпг Ьега) всаг1с чо1д Орслгэнесь(1пя в1рвя, ьпг Ьеса, гпс дашка) Эти перегружаемые варианты метода ОрбАгдМеЬЬ () позволяют вызывать его с одним, двумя или тремя аргументами.

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

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

вгвсьс чо1д ОРГАгчиесв(гпя а1РЬа, Япс Ъеяа=10, ьпс Чашша = 20) ( Сопяо1е.Хгяяесьпе ("Это аргументы а1рвв, Ьеяа и Чвшшв: а1рвя е " " + Ьеяа + " " е Чашша); ) вгагьо чоьд Оргкгчмеяь(ьпг а1рьа, дооЪ1е Ьегя=10.0, дооьге двшшя = 20.0) ( Сопво1е.игьгевьпе("Это аргументы в1рвв, Ьеяа и двшшя: в1рьв з " " е ьеса е " " э чяяяяя)г ) Обратите внимание на то, что единственное отличие в обоих вариантах рассматриваемого здесь метода состоит в типах параметров Ьеса и дапнпа, которые оказываются необязательными. В первом варианте оба параметра относятся к типу 1пс, а во втором — к типу донЬ1е. С учетом этих вариантов перегрузки метода ОрСАгдыеСЬ () следующий его вызов приводит к неоднозначности.

ОрялгЧМеПЬ(1); !/ Ошибка из-зв неоднозначности! Этот вызов приводит к неоднозначности потому, что компилятору неизвестно, какой именно вариант данного метода использовать: тот, где параметры ьеьа и дашин имеют тип 10г, или же тот, где они имеют тип донЬ1е. Но самое главное, что конкретный вызов метода Орслгггыегп () может привести к неоднозначности, даже если она и не присуща его перегрузке. В связи с тем что перегрузка методов, допускающих применение необязательных аргументов, может привести к неоднозначности, очень важно принимать во внимание последствия такой перегрузки.

В некоторых случаях, возможно, придется отказаться от применения необязательных аргументов, чтобы исключить неоднозначность и тем самым предотвратить использование метода непреднамеренным образом. Глава 8. Подробнее о методах н классах 251 Практический пример использования необязательных аргументов Для того чтобы показать на практике, насколько необязательные аргументы упрощают вызовы некоторых типов методов, рассмотрим следующий пример программы.

В этой программе объявляется метод 01зр1ау (), выводящий на экран символьную строку полностью или частично. Использовать необязательный аргумент, чтобы упростить вызов метода. ивьпд яузгею; с1авв озеоргкгпв ( Вывести на экран символьную строку полностью или частично. вгагьс чо10 01зр1ау(вгг1по вгг, гпг всагг = О, 1пг втор = -1) 11(егор < О) егор = всг.ьепясьг // проверить условие выхода за заданные пределы. 11(егор > эгг.ьепогл ) всагс > асор ( всагг < О) гесчгпг гог(1пг ь=вгагю 1 < вгорг Сопво1е.ильге(згг(1))Г Сопво1е.нгьгеЬьпе(); ) зсас1с но16 Ма1п() Ььар1ау("это простой тест"); Ргвр1ау("это простой тест", 12)1 01вр1ау("это простой тест", 4, 14); ) Выполнение этой программы дает следующий результат.

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

Если же параметру з с а ге не передается значение, то по умолчанию он принимает значение О. Следовательно, в отсутствие одного из необязательных аргументов символьная строка выводится на экран полностью. В противном случае она выводится на экран частично. Зто означает, что если вызвать метод г)1зр1ау () с одним аргументом (т.е. с выводимой строкой), то символьная строка будет выведена на экран полностью. Если же вызвать метод Рьвр1ау () с двумя аргументами, то на экран будут выведены символы, начиная с позиции, определяемой аргументом 252 Часть Е Язык Св зсагс, и до самого конца строки. А если вызвать метод Пйвр1ау () с тремя аргументами, то на экран будут выведены символы из строки, начиная с позиции, определяемой аргументом вгагс, и заканчивая позицией, определяемой аргументом егор.

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

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

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

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

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

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